具有N个节点和深度M的树的数量

时间:2012-11-17 22:26:59

标签: data-structures tree

N个节点和深度M存在多少棵树? 我想知道可以用N个节点和深度M制作的任何树(简单,二进制等)的数量。

我一直在努力为它寻找一个公式,但到目前为止我还没有成功。 有什么建议?提前谢谢。

1 个答案:

答案 0 :(得分:1)

改变从根到深度的节点数量" m",只考虑一条路径,你可以得到" m"节点,因而" m"不同的树 - 如果您将任何第i个节点从根级别排除到级别" m"。你将排除从i到m的整个路径。

现在,考虑到你可以拥有" n"以广度优先的方式插入的节点,你将拥有" n"节点,因为每个节点可能彼此不同。这为您提供了" n"的所有组合。节点," k" by" k",对于每一种可能的" k",whick与2 ^ n相同。

将组合与不同数量的级别混合,每个级别都有各种组合,因为每个树结构可能代表不同的树。 所有组合都涉及" n"的组合数量。每个" m"的节点水平。

我真的不知道如何从中获得最终的公式,但我会说你想要的值接近于(2 ^ n.m!),考虑到,对于每个可能的组合& #34; N"在给定级别的节点中,还有m个不同级别的这些节点的一组组合。

只是说清楚,我不确定如何计算这个,这是我能够直观地达到的最远。

参考确认k-combinations summed for all k's