二叉树的三种递归遍历

#include <stdio.h> 
#include <stdlib.h>
#define elemTpye int


typedef struct BitNode{
elemTpye data;
struct BitNode *lchild,*rchild;
}BitNode,*pBitNode;


void CreateBTree(pBitNode b){
b->data= 1;
b->lchild = (pBitNode)malloc(sizeof(BitNode));
b->rchild = (pBitNode)malloc(sizeof(BitNode));
b->lchild->data = 2;
b->lchild->lchild = (pBitNode)malloc(sizeof(BitNode));
b->lchild->lchild->data =4;
b->lchild->lchild->lchild =NULL;
b->lchild->lchild->rchild =NULL;

b->lchild->rchild = (pBitNode)malloc(sizeof(BitNode));
b->lchild->rchild->data =5;
b->lchild->rchild->lchild = NULL;
b->lchild->rchild->rchild = NULL;

b->rchild->data =3;
b->rchild->lchild = (pBitNode)malloc(sizeof(BitNode));
b->rchild->lchild->data =6 ;
b->rchild->lchild->lchild = NULL;
b->rchild->lchild->rchild = NULL;

b->rchild->rchild = NULL;
}


//读取节点的数据 
void displayData(pBitNode Node){
printf("%d ",Node->data);
}
//先序遍历 
void pretraverse(pBitNode T){
if(T){
displayData(T);
pretraverse(T->lchild);
pretraverse(T->rchild);
}
}
//中序遍历 
void intraverse(pBitNode T){
if(T){
intraverse(T->lchild);
displayData(T);
intraverse(T->rchild);
}
}
//后序遍历
void posttraverse(pBitNode T){
if(T){
posttraverse(T->lchild);
posttraverse(T->rchild);
displayData(T);
}

}




int main(){
pBitNode btree = (pBitNode)malloc(sizeof(BitNode));
CreateBTree(btree);
//先序遍历 
pretraverse(btree);
printf("\n");
//中序遍历 
intraverse(btree);
printf("\n");
//后序遍历 
posttraverse(btree);
printf("\n");
return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值