让我们说我们这种树: http://up400.siz.co.il/up1/tymmh2wylmmo.png
当树的高度为H时,树中的每个级别可以有不同数量的节点。 例如,根级别有3个节点(图中“x”),下一级每个节点有2个节点(图中“y”),下一级每个节点有4个节点(图中“z”) ),等等......
当给出H时,是否存在计算这类树的公式,并且给出了节点数(对于每个节点)?
谢谢!
答案 0 :(得分:1)
递归公式很明显:
def node_count(level):
n = number_of_children_for_level(level)
if n == 0:
return 1
else:
return 1 + n * node_count(level + 1)
假设级别的子级数为3, 4, 2, 0
,则节点总数将为
1 + 3 * (1 + 4 * (1 + 2 * 1))
答案 1 :(得分:0)
如果树已完成,那么......
因此通用公式为((((m + 1)* n + 1)... * p + 1)* q + 1),其中m ... q是每个级别上的节点数。或者你可以递归地说size_n = size_{n - 1} * branchiness_n + 1
。