导航:首页 > 编程语言 > 二叉树高度java

二叉树高度java

发布时间:2024-05-13 11:11:01

A. 怎么计算二叉树高度

分析二叉树的深度(高度)和它的左、右子树深度之间的关系。从二叉树深度的定义可知,二叉树的深度应为其左、右子树深度的最大值加1。由此,需先分别求得左、右子树的深度,算法中“访问结点”的操作为:求得左、右子树深度的最大值,然后加 1 。

int Depth (BiTree T ){ // 返回二叉树的深度

if ( !T ) depthval = 0;

else {

depthLeft = Depth( T->lchild );

depthRight= Depth( T->rchild );

depthval = 1 + (depthLeft > depthRight ?

depthLeft : depthRight);

}

return depthval;

}

(1)二叉树高度java扩展阅读:

一棵深度为k,且有2^k-1个结点的二叉树,称为满二叉树。这种树的特点是每一层上的结点数都是最大结点数。而在一棵二叉树中,除最后一层外,若其余层都是满的,并且或者最后一层是满的,或者是在右边缺少连续若干结点,则此二叉树为完全二叉树。具有n个结点的完全二叉树的深度为floor(log2n)+1。深度为k的完全二叉树,至少有2k-1个叶子结点,至多有2k-1个结点。

二叉树的深度是从根节点开始(其深度为1)自顶向下逐层累加的;而二叉树高度是从叶节点开始(其高度为1)自底向上逐层累加的。虽然树的深度和高度一样,但是具体到树的某个节点,其深度和高度是不一样的。

B. Java数据结构二叉树深度递归调用算法求内部算法过程详解

二叉树
1
2 3
4 5 6 7
这个二叉树的深度是3,树的深度是最大结点所在的层,这里是3.

应该计算所有结点层数,选择最大的那个。

根据上面的二叉树代码,递归过程是:

f(1)=f(2)+1 > f(3) +1 ? f(2) + 1 : f(3) +1

f(2) 跟f(3)计算类似上面,要计算左右结点,然后取大者

所以计算顺序是f(4.left) = 0, f(4.right) = 0

f(4) = f(4.right) + 1 = 1

然后计算f(5.left) = 0,f(5.right) = 0

f(5) = f(5.right) + 1 =1

f(2) = f(5) + 1 =2

f(1.left) 计算完毕,计算f(1.right) f(3) 跟计算f(2)的过程一样。

得到f(3) = f(7) +1 = 2

f(1) = f(3) + 1 =3

if(depleft>depright){
returndepleft+1;
}else{
returndepright+1;
}

只有left大于right的时候采取left +1,相等是取right

C. java中二叉树的深度怎么计算

若为空,则其深度为0,否则,其深度等于左子树和右子树的深度的最大值加1

阅读全文

与二叉树高度java相关的资料

热点内容
pdf1膜 浏览:157
理光为什么设置不了扫描文件夹 浏览:872
老夫子pdf 浏览:302
基于matlab的图像压缩编码 浏览:79
麦克纳姆轮编程 浏览:158
昂科威15压缩比 浏览:100
安卓车机wifi安全性如何选择 浏览:388
华三服务器如何外接硬盘 浏览:585
csgo创意工坊如何寻找专用服务器 浏览:314
程序员抓虫子动图 浏览:600
广数挑四头螺纹怎么编程 浏览:650
embraco压缩机是哪国的 浏览:911
为什么服务器流量那么贵 浏览:258
读取pdf文件内容 浏览:490
如何给脚本链接加密 浏览:86
多服务器云部署方案 浏览:443
如何把一个安卓应用改为中文版 浏览:450
带求补器的源码 浏览:735
程序员掉入能力陷阱 浏览:672
中百超市多点app如何充值 浏览:331