C语言_二叉树

//二叉树结点结构定义
	typedef struct BiNode
	{
		char data;
		BiNode *lchild;
		BiNode *rchild;
	}BiNode,*BiTree;
//先序遍历
	void PreOrder(BiTree t)
	{
		if(t!=NULL)
		{
		printf("%c\t",t->data);
		PreOrder(t->lchild);
		PreOrder(t->rchild);
		}
	} 
//中序遍历
	void InOrder(BiNode *t)
	{
		if(t==NULL)
		return;
		InOrder(t->lchild);
		printf("%c\t",t->data);
		InOrder(t->rchild);
	}
//后根
		void PostOrder(BiNode *t)
	{
		if(t==NULL)
		return;
		PostOrder(t->lchild);
		PostOrder(t->rchild);
		printf("%c\t",t->data);
	}
//创建
	void CreateBiTree(BiTree *tree)
	{
		char ch;
		scanf("%c",&ch);
		if(ch=='#')
		*tree=NULL;           
		else
		{
			*tree=(BiNode *)malloc(sizeof(struct BiNode));
			(*tree)->data=ch;
			CreateBiTree(&(*tree)->lchild);
			CreateBiTree(&(*tree)->rchild);

		}
	}
//测试
int main()
{

	BiTree t;
	t=(BiNode *)malloc(sizeof(struct BiNode));
	CreateBiTree(&t);

	PreOrder(t);
	InOrder(t);
	
	return 0;
} 
发布了24 篇原创文章 · 获赞 2 · 访问量 399

猜你喜欢

转载自blog.csdn.net/yyp1998/article/details/105059240