首页 > 编程知识 正文

二叉树遍历算法c语言,二叉树的深度c语言

时间:2023-05-04 06:54:20 阅读:166794 作者:198

【数据结构】二叉树深度计算二叉树深度计算完整代码表示程序结果

二叉树的深度计算

我们先来看看深度为3的二叉树。 要求出这个二叉树的深度,首先计算左边孩子的深度,然后计算右边孩子的深度,比较最大值二叉树的深度。

从第一个序列键盘输入二叉树的ABD##E##CF###。

注:

二叉树输入法:先左后右,深入扫描,无子树节点为#。

算法先调查二叉树左部分的树的深度,然后调查二叉树右部分的树的深度。 最后判断左右子树的深度,在左右子树比左右子树深的情况下,返回左右子树的深度1,否则返回左右子树的深度1。

完整的代码显示# include stdio.h # include malloc.htypedefstructbitnode { chardata; /*节点的数据域*/struct BiTNode *lchild,*rchild; /*指向左子代和右子代的*/} BiTNode,*BiTree; /*二叉树*/voidcreatbitree(bitree*t ) {char c; scanf('%c ',c ); if(c=='# ' ) *T=NULL; ELSE{*t=(bitnode* ) malloc (sizeof ) bitnode ); /*创建根节点*//(t )-data=c; /*根节点上的数据*/creatbitree () () t )-lchild ); /*递归左侧子树*/creatbitree (() () t )-rchild ); //二叉树的深度intgetbitreedepth(bitreet ) {递归创建{int leftHeight,rightHeight,maxHeight ) () ) ) )=NULL对于空树{ left height=getbitreedepth (t-lchild ); //左子树的深度rightheight=getbitreedepth (t-rchild ); //右子树的深度max height=leftheightrightheight? leftHeight:rightHeight; //最大深度return maxHeight 1; //二叉树深度=最大深度1}else{return 0; }}void main () {BiTree T=NULL; /*请先输入t为空*/printf ('请输入二叉树(#作为空子树) (n ' ); creatbitree(t; 创建/*二叉树*/printf ((n二叉树深度为(d(n ),getbitreedepth(t ) ); getchar (; getchar (; }程序结果

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。