树的前中后遍历及求高度

#include<stdio.h>

#include<stdlib.h>

typedef char ElemType;

typedef struct BiTNode

{ ElemType data;

 struct BiTNode * lchild,* rchild;

}BiTNode,*BiTree;

bool CreateBitPre(BiTree &T)//先序遍历创建二叉树

{

 char ch;

 scanf("%c",&ch);

 if(ch=='#') T=NULL;

 else{

  T=(BiTNode *)malloc(sizeof(BiTNode));

  if(T==NULL) return false;

  T->data=ch;

  CreateBitPre(T->lchild);

  CreateBitPre(T->rchild);

 }

 return true;

}

void visit(BiTree T)

{

 printf("%c", T->data);

}

void PreOrder(BiTree T)//先序遍历

{

 if(T !=NULL)

 {

  visit(T);

  PreOrder(T->lchild);

  PreOrder(T->rchild);

 }

}

void InOrder(BiTree T)//中序遍历

{

 if(T !=NULL)

 {

  InOrder(T->lchild);

  visit(T);

  InOrder(T->rchild);

 }

}

void PostOrder(BiTree T)//后序遍历

{

 if(T !=NULL)

 {

  PostOrder(T->lchild);

  PostOrder(T->rchild);

  visit(T);

 }

}

int treeDepth(BiTree T)

{

 if(T== NULL)

{

  return 0;

}

else

{ int l= treeDepth(T->lchild);

 int r= treeDepth(T->rchild);

 return l>r? l+1 : r+1;

}

}

int main()

{BiTree T;

int c;

CreateBitPre(T);//先序遍历创建二叉树

printf("前序遍历:");

 PreOrder(T);

 printf("\n");

 printf("中序遍历:");

 InOrder(T);

 printf("\n");

 printf("后序遍历:");

 PostOrder(T);

 printf("\n");

 printf("树的深度:");

 c=treeDepth(T);

 printf("%d",c);

 return 0;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

七月初七淮水竹亭~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值