【发布时间】:2016-08-27 15:47:12
【问题描述】:
假设我有一个二次树(每个节点有 4 个子节点)。 现在,当树的高度为 d 时,我如何计算树中的最小和最大节点数?
提前谢谢你。
【问题讨论】:
-
你试过什么?我们喜欢在这个网站上提供帮助,但我们不会在不努力的情况下放弃解决方案
标签: data-structures
假设我有一个二次树(每个节点有 4 个子节点)。 现在,当树的高度为 d 时,我如何计算树中的最小和最大节点数?
提前谢谢你。
【问题讨论】:
标签: data-structures
正如二叉树的最大节点数可以使用2^d - 1 计算,二次树也可以使用4^d - 1 计算。这将被视为一棵完整的树。
这可以通过以下方式证明:让n 为树中的节点数t,高度为h。
那么,h <= n <= 2^h - 1。log4[n+1] <= h <= n
对于最小节点数,我们需要知道树是否预计是满的。如果不是,则高度为d 的树的最小节点数将是d。
在确定最小节点数时,了解您是只关注内部节点还是外部节点可能会有所帮助。
【讨论】:
首先,如果高度为 d,则表示有 d+1 行。但我认为有些约定只是将其视为 d 行。
第二个最大节点数是 4^0 + 4^1 + 4^2 + ... + 4^d = (4^(d+1) - 1)/3
每行至少有 1 个节点,有 d+1 行 voala = d+1 个节点
【讨论】: