首页 > 编程知识 正文

计算二叉树的深度和叶子结点数,c语言求二叉树的深度

时间:2023-05-04 13:07:07 阅读:166774 作者:2966

【问题描述】给出二叉树,求该二叉树的深度。

二叉树深度定义:从根节点到开放樱桃依次经过的节点(包括根、开放樱桃)形成树的一条路径,最长路径的节点数为树的深度。

【输入形式】

第1行是表示二叉树节点数的整数n。 二叉树的节点编号为1到n,根节点为1,n=10

其次有n行,依次对应二叉树的n个节点。

每行有两个整数,表示该节点的左儿子和右儿子的节点编号。 如果第一个(第二个)数为-1,则意味着没有左(右)儿子。

【输出形式】

输出表示树深度的整数。

【样品输入】

32 3-1 -1-1 -1【样品输出】

2

中输入的格式进行分析,在数组中直接保存即可。 二叉树深度AC的C代码# include iostream # includealgorithmusingnamespacestd; int L[15]; int R[15]; int d_max=0; //在深开挖中深度voiddeep_DFS(intI,int d ) d_max=max ) d_max,d ); if(L[I]!=-1 ) deep_DFS(L[I],d 1 ); if(r[I]!=-1 ) deep_DFS(r[I],d 1 ); //生成树的voidbuild(intn ) ) {int l,r; for(intI=1; i=n; I ) ({cin l r; if(L!=-1 ) L[i]=l; 国际空间站!=-1 ) R[i]=r; }}int main () ) {int n; cin n; fill(L,Lsizeof(L ),-1); 初始化为//- 1文件(r,R sizeof(R ),-1); build(n; deep _ DFS (1,1; cout d_max endl; 返回0; }

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