二叉树 --先序 中序 后序

本文介绍了一种使用C语言创建二叉树的方法,并通过中序遍历来展示树的结构。代码中定义了二叉树节点结构体,实现了一个递归函数用于创建树,并有一个遍历函数来打印树的内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#include<stdio.h>
#include<malloc.h>
 struct node{//建树  过程中输入这个树 
	char info;
	struct node *llink,*rlink;
	};
typedef struct node NODE;
NODE *creat(){
	char x;
	NODE *p;
    scanf("%c",&x);
//	printf("%c",x);//检验结果 
	if(x!='.')
	{
		p=(NODE *)malloc(sizeof(NODE));
		p->info=x;
		p->llink=creat();
		p->rlink=creat();
	 }
	else
		p=NULL;
	return p;
}/*
typedef struct TNode//二叉树结构
{
  char nodeValue;//结点的值
  TNode* left;//左子树 
  TNode* right;//右子树 
}*BiTree;
void CreateBiTree(BiTree &T)//中序遍历方式创建二叉树 ,输入.代表该结点为空 
{
  char nodeValue;
  cin>> nodeValue; 
  if(nodeValue!='.')//结点非空
  {
    T=new TNode;
    T->nodeValue=nodeValue;
    CreateBiTree(T->left); 
    CreateBiTree(T->right);                    
  }
  else T=NULL; 

}


*/ 
void run(NODE *t){//中序遍历 
	if(t){
		
		run(t->llink);printf("%c",t->info);
		run(t->rlink);
		
	  }
}
/*
void run(NODE *t){//先序遍历 
	if(t){
		printf("%c",t->info);
		run(t->llink);
		run(t->rlink);
		
	  }
void run(NODE *t){//后序遍历 
	if(t){
		run(t->llink);
		run(t->rlink);
		printf("%c",t->info);
	  }
}
}


*/ 
main()
{
	NODE *T;
	printf("PLease input a tree:\n");
	T=creat();
	printf("\n");
	if(!T)
		printf("This is a empty binary tree.");
	else
	    { printf("The result of post travese is:\n ");
		run(T);
		}
       printf("\n");
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值