第一周学习记录

学习记录(4.22-4.29)

数据结构

  • 学习二叉树的顺序存储操作和链式存储操作
    包括创建二叉树,先序中序后序排列输出。作业:查找元素并写出所在层数。
    代码:
#include<stdlib.h>

//树的定义(结点定义)
typedef char DataType;
typedef struct Node {
     DataType  data; 
     struct  Node  *lchild; 
     struct  Node  *rchild;                   
} BiNode,*BiTree;

//创建树的二叉链表(递归)
void CreateBiTree(BiTree *bt)
{
	char ch;
	ch = getchar();
    if(ch=='.') *bt=NULL;
    else 
	{
		*bt= (BiNode *)malloc(sizeof(BiNode)); 
		(*bt)->data=ch;
         CreateBiTree(&((*bt)->lchild)); //生成左子树
         CreateBiTree(&((*bt)->rchild)); //生成右子树
	}
}

//输出二叉树的元素(先序)
void Print(BiTree bt)
{
	if(bt==NULL)	
		return;
	else
	{
		printf("%c ", bt->data);
		Print(bt->lchild);
		Print(bt->rchild);
	}

}

int where=1;
int reserch(char x,BiTree bt)
{
	if (bt==NULL)return 0;
	if(bt->data==x)return where;
	where++;
	if(reserch(x,bt->lchild)==0)where--;
	else return where;
	where++;
	if(reserch(x,bt->rchild)==0)where--;
	else return where;
	
	return 0;
}
//主函数
void main()
{
	BiTree T;
	char r;
	CreateBiTree(&T);
	Print(T);
	printf("
");
	getchar();
	scanf("%c",&r);
	printf("%d",reserch(r,T));
}
  • 学习markdown写作基础。用于编写博客。
原文地址:https://www.cnblogs.com/LKL1235/p/12803374.html