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

dfnjsfkhak 46 0

好,今天小编关注到一个比较意思的话题,就是关于c语言二叉树的深度问题,于是小编就整理了3个相关介绍c语言二叉树的深度的解答,让我们一起看看吧。

  1. 二叉树的深度和高度有什么区别?
  2. 计算机二级关于二叉树的问题。懂的进,急求解答?

二叉树的深度和高度有什么区别?

区别:深度是从根节点数到它的叶节点,高度是从叶节点数到它的根节点。

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

c语言二叉树的深度,c语言二叉树的深度算法-第1张图片-芜湖力博教育咨询公司
图片来源网络,侵删)

完全二叉树结点深度计算公式

计算二叉树的深度 :

满二叉树的深度为k=log2(n+1)

在完全二叉树中,具有n个结点的完全二叉树深度为(log2n)+1,其中(log2n)+1是向下取整。

c语言二叉树的深度,c语言二叉树的深度算法-第2张图片-芜湖力博教育咨询公司
(图片来源网络,侵删)

计算完全二叉树深度公式-推导证明:

***设两种极端情况

<1>该树为满二叉树时,结点n1=2^k-1

c语言二叉树的深度,c语言二叉树的深度算法-第3张图片-芜湖力博教育咨询公司
(图片来源网络,侵删)

此时k=log2(n1+1)

<2>当该树为满二叉树附加一个结点时,n2=2^(k-1),此时k=log2n2 +1,

并且log2(n1+1)=log2n2 +1

对任意结点n的完全二叉树,n2<=n<=n1

计算机二级关于二叉树的问题。懂的进,急求解答?

1.如果有一颗深度为h的满二叉树,   它的叶子数是: 2^(h-1) 选c 如果一棵具有n个结点的深度为k的二叉树,它的每一个结点都与深度为k的满二叉树中编号为1~n的结点一一对应,这棵二叉树称为完全二叉树。

  可以根据公式进行推导,***设n0是度为0的结点总数(即叶子结点数),n1是度为1的结点总数,n2是度为2的结点总数,由二叉树的性质可知:n0=n2+1,则n= n0+n1+n2(其中n为完全二叉树的结点总数),由上述公式把n2消去得:n= 2n0+n1-1,由于完全二叉树中度为1的结点数只有两种可能0或1,由此得到n0=(n+1)/2或n0=n/2,就可根据完全二叉树的结点总数计算出叶子结点数。所以叶子结点数相同

到此,以上就是小编对于c语言二叉树的深度的问题就介绍到这了,希望介绍关于c语言二叉树的深度的3点解答对大家有用

标签: 结点 深度 完全