树的节点数,每个节点有两个子节点

时间:2015-04-27 02:06:34

标签: data-structures tree

我的树有以下形式:

enter image description here

在第一张图片上,树的高度为1,总共有3个节点。下一个为2,对于最后一个为3,为15。如何确定这种l高度的树将具有多少个节点?那个是什么样的树(特别是它叫什么?)?

5 个答案:

答案 0 :(得分:4)

这是perfect binary tree

您可以在考虑此递归方法的情况下获取节点数:

n(0) = 1
n(l+1) = n(l) + 2^l

所以

n(l) = 2^(l+1) - 1

答案 1 :(得分:2)

深度为'd'的完整二叉树是严格的二叉树,其中所有叶子都在d级。

  • 表示图1,d = 1
  • 代表图2,d = 2
  • 表示图3,d = 3

因此,假设深度为d的二叉树T.然后最多

2(d+1)-1

节点n可以在T.

  • 表示图1,d = 1; 2(1+1)-1 = 2(2)-1 = 4-1 = 3
  • 表示图2,d = 2; 2(2+1)-1 = 2(3)-1 = 8-1 = 7
  • for fig3 d = 3; 2(3+1)-1 = 2(4)-1 = 16-1 = 15

树的高度h)和深度d (长度<从根到叶节点的最长路径在数值上是相等的。

这是answer详细说明如何计算深度和高度。

答案 2 :(得分:1)

完整树中的节点数是......

n = 2 ^(h + 1) - 1。

答案 3 :(得分:1)

您所描述的内容听起来像“完美的二叉树”。 “二叉树是一种树数据结构,其中每个节点最多有两个子节点” http://en.wikipedia.org/wiki/Binary_tree 完美的树是“具有相同深度的所有叶节点的二叉树”。 http://xlinux.nist.gov/dads//HTML/perfectBinaryTree.html

高度到完美二叉树中的最大节点数 = 2 ^(高度+ 1)-1

节点数到最小高度 = CEILING(LOG(节点+ 1,2)-1,1)

与二叉树相关的定义可以在之前引用的Wikipedia wiki中找到。

答案 4 :(得分:0)

这也可以这样理解。

如果是完美的二叉树 叶节点的总数 2 ^ H (H =树的高度)

且内部节点总数 2 ^ H - 1

因此,节点的总数将是 2 ^ H + 2 ^ H - 1 ,其他人提到的 2 ^(H + 1) - 1

希望这会有所帮助。