二叉树的高度和深度计算公式

网上有关“二叉树的高度和深度计算公式”话题很是火热,小编也是针对二叉树的高度和深度计算公式寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。

原题:

以二叉链表为存储结构,分别写出求二叉树高度及宽度的算法。所谓宽度是指在二叉树的各层上,具有结点数最多的那一层上的结点总数。

标准答案:

①求树的高度

思想:对非空二叉树,其深度等于左子树的最大深度加1。

Int

Depth(BinTree

*T)

{

int

dep1,dep2;

if(T==Null)

return(0);

else

{

dep1=Depth(T->lchild);

dep2=Depth(T->rchild);

if(dep1>dep2)

return(dep1+1);

else

return(dep2+1);

}

②求树的宽度

思想:按层遍历二叉树,采用一个队列q,让根结点入队列,最后出队列,若有左右子树,则左右子树根结点入队列,如此反复,直到队列为空。

int

Width(BinTree

*T)

{

int

front=-1,rear=-1;/*

队列初始化*/

int

flag=0,count=0,p;

/*

p用于指向树中层的最右边的结点,标志flag记录层中结点数的最大值。*/if(T!=Null)

{

rear++;

q[rear]=T;

flag=1;

p=rear;

}

while(front<p)

{

front++;

T=q[front];

if(T->lchild!=Null)

{

rear++;

q[rear]=T->lchild;

count++;

}

if(T->rchild!=Null)

{

rear++;

q[rear]=T->rchild;

count++;

}

if(front==p)

/*

当前层已遍历完毕*/

{

if(flag<count)

flag=count;

count=0;

p=rear;

/*

p指向下一层最右边的结点*/

}

}

/*

endwhile*/

return(flag);

}

如何求二叉树深度

(1)n1=n-2n0+1

(2)n=n0+2^(k-1) -1

(3)n=2n0-1

二叉树的第i层至多有2的 i -1次方个结点;深度为k的二叉树至多有2^(k) -1个结点;对任何一棵二叉树T,如果其终端结点数(即叶子结点数)为n0,度为2的结点数为n2,则n0 = n2 + 1。

怎么计算二叉树高度?

二叉树性质如下:

1 :在二叉树的第i层上至少有2^(i-1)个结点

2:深度为k的二叉树至多有2^(k-1)个结点

3:对任何一棵二叉树T,如果其终端结点数为n0,度为2的结点数为n2,则n0=n2+1

4:具有n个结点的完全二叉树的深度是log2n+1(向下取整)

5:如果对一棵有n个结点的完全二叉树的结点按层序编号,则对任一结点i(1?i?n),有:

如果i=1,则结点i是二叉树的根,无双亲;如果i>1,则其双亲是?i/2?

如果2i>n,则结点i无左孩子;如果2i?n,则其左孩子是2i

如果2i+1>n,则结点i无右孩子;如果2i+1?n,则其右孩子是2i+1

二叉树深度算法如下:

深度为m的满二叉树有2^m-1个结点;

具有n个结点的完全二叉树的深度为[log2n]+1.(log2n是以2为底n的对数)

分析二叉树的深度(高度)和它的左、右子树深度之间的关系。从二叉树深度的定义可知,二叉树的深度应为其左、右子树深度的最大值加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;

}

扩展资料:

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

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

百度百科—二叉树

关于“二叉树的高度和深度计算公式”这个话题的介绍,今天小编就给大家分享完了,如果对你有所帮助请保持对本站的关注!

本文来自作者[又蕊]投稿,不代表育友号立场,如若转载,请注明出处:https://m.jxydedu.cn/kepu/202512-823.html

(13)

文章推荐

  • 唐朝时通过科举考试而选出来的名人及其成功经历

    网上有关“唐朝时通过科举考试而选出来的名人及其成功经历”话题很是火热,小编也是针对唐朝时通过科举考试而选出来的名人及其成功经历寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。狄仁杰武则天时期宰相,杰出政治家。应试明经科,从而步入仕途。贺知章(公元659-7

    2025年12月06日
    12315
  • 一斤半面粉烙饼放多少盐

    网上有关“一斤半面粉烙饼放多少盐”话题很是火热,小编也是针对一斤半面粉烙饼放多少盐寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。烙饼想要柔软不发硬,和面用开水还是凉水?都不对!教你正确做法民间有“头伏饺子、二伏面、末伏吃油饼”的习俗,末伏是三伏天

    2025年12月06日
    10322
  • 130厘米等于多少尺寸-

    网上有关“130厘米等于多少尺寸?”话题很是火热,小编也是针对130厘米等于多少尺寸?寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。我以前做过柯达专业数码彩扩员!首先向你说的是照片在不同的冲印店里略有差别!且有规定表中的尺寸,其它非标准尺寸,一般取最近的尺寸

    2025年12月07日
    12310
  • 埠头到杭州高速几公里

    网上有关“埠头到杭州高速几公里”话题很是火热,小编也是针对埠头到杭州高速几公里寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。仙居县埠头镇到杭州市走高速大约196.8公里。走高速的驾车路线如下。驾车路线1:全程约196.8公里起点:仙居县埠头镇政府1.台州市内

    2025年12月07日
    16317
  • 判断电路状态的方法初三物理

    网上有关“判断电路状态的方法初三物理”话题很是火热,小编也是针对判断电路状态的方法初三物理寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。用电器不能正常工作,就表明出现了问题,一般有下列几种状况:(1)断路——①如果是串联电路的某部分发生断路,现象一定是小灯

    2025年12月07日
    14320
  • 等额本金还款法计算公式是什么?

    网上有关“等额本金还款法计算公式是什么?”话题很是火热,小编也是针对等额本金还款法计算公式是什么?寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。等额本金有以下几种计算公式:1、每月归还本金=贷款总额÷归还月数;2、还款总利息=(还款月数+1)×贷款额×月利率

    2025年12月08日
    15305
  • 重庆至云南澄江抚仙湖多少公里-过路费多少-

    网上有关“重庆至云南澄江抚仙湖多少公里?过路费多少?”话题很是火热,小编也是针对重庆至云南澄江抚仙湖多少公里?过路费多少?寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。现在重庆到云南有三条线路,从毕节六盘水前往过路费440,约900公里,从昭通前往过路费43

    2025年12月08日
    15312
  • 二保焊焊接厚板大坡口探伤焊缝的方法

    网上有关“二保焊焊接厚板大坡口探伤焊缝的方法”话题很是火热,小编也是针对二保焊焊接厚板大坡口探伤焊缝的方法寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。1、由于二保焊容易出现气孔,因此根部清根后做一次pt。2、焊至板厚的一半的时候进行一次ut,避免完全焊完后

    2025年12月08日
    13317
  • 合肥哪里的房价比较便宜

    网上有关“合肥哪里的房价比较便宜”话题很是火热,小编也是针对合肥哪里的房价比较便宜寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。现在滨湖的均价已经到4600了,有点贵,政务区基本上在5500左右了,起价和均价都是忽悠人的,自己要选的楼层和房型会有差距的,还是

    2025年12月08日
    11320
  • 运放电源电压对运放输出电压有影响没?

    网上有关“运放电源电压对运放输出电压有影响没?”话题很是火热,小编也是针对运放电源电压对运放输出电压有影响没?寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。运放的输出电压要从两个角度来说:一个是可达到的最大电压范围,这个是和电源电压有关的,因为5V电源时绝不

    2025年12月09日
    12303
  • 猪打架用什么方法解决

    网上有关“猪打架用什么方法解决”话题很是火热,小编也是针对猪打架用什么方法解决寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。猪打架解决方法如下:1、首先把猪隔离开,不然其他的猪会咬,然后最好能通风。2、可以给猪的耳朵或者尾巴放血,这样能减轻应激。3、药物方面

    2025年12月10日
    7307
  • 上海健康医学院新增专业有哪些

    网上有关“上海健康医学院新增专业有哪些”话题很是火热,小编也是针对上海健康医学院新增专业有哪些寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。根据教育部公布的《普通高等学校本科专业备案和审批结果》可知:近年来,上海健康医学院新增专业有康复工程、预防医学、药物分

    2025年12月10日
    7309

发表回复

本站作者才能评论

评论列表(3条)

  • 又蕊的头像
    又蕊 2025年12月08日

    我是育友号的签约作者“又蕊”

  • 又蕊
    又蕊 2025年12月08日

    本文概览:网上有关“二叉树的高度和深度计算公式”话题很是火热,小编也是针对二叉树的高度和深度计算公式寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您...

  • 又蕊
    用户120810 2025年12月08日

    文章不错《二叉树的高度和深度计算公式》内容很有帮助