首页 > 编程知识 正文

数据结构二叉树的公式,c语言求二叉树的深度

时间:2023-05-03 09:41:06 阅读:160288 作者:2303

深度:树的最大层数

示例: (a ) 1,b ) 2,0,c ) 3,0,0,d ) 4,0,0

# include stdio.h # include stdlib.h # include math.h # define maxsize 10010 # defineelemtypeinttypedefstructbtnode { elemttyped } }*BTree; BTree CreateTree () ) { ElemType ch; printf ('输入节点元素的值: '; scanf('%d ',ch ); if(ch==0)返回空值; ELSE{btreetree=(btree ) malloc (sizeof ) btree ); tree-data=ch; printf('%d节点左子树(n ),ch ); tree-lchild=CreateTree (; printf('%d节点右子树(n ),ch ); tree-rchild=CreateTree (; 返回树; }//voidpreordertravel (btree tree ) ) if ) tree==null ) return; printf('%d ',tree-data ); preordertravel(tree-lchild; preordertravel(tree-rchild; (//按中顺序voidmedordertravel(btreetree ) if ) tree==null ) return; medordertravel(tree-lchild; printf('%d ',tree-data ); medordertravel(tree-rchild; //Voidaftordertravel(btreetree ) if ) tree==null ) return; aftordertravel(tree-lchild; aftordertravel(tree-rchild ); printf('%d ',tree-data ); }intgetdepth(btreetree ) if (! 树(return 0; else { intleftdepth=get depth (tree-lchild ); intrightdepth=get depth (tree-rchild; return leftDepth rightDepth? (左深度1 ) : )右深度1 ); (}int main ) ) { printf创建二叉树(n ); 树型树; tree=CreateTree (; printf (二叉树超前扫描(n ); preordertravel(tree; printf (获取二叉树的深度(n ); int maxDepth=0,maxWidth=0; 最大深度=get depth (tree ); printf (树的深度为%d(n ),最大深度); 返回0; () ) ) ) )。

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