2017-04-12 96 views

回答

0

这个问题并不完全清楚。我假设你想要完整的二元(分别为三元)树和正好n个树叶的数量(如果你总是在寻找n个节点,你可以从我的结果中找到它;如果你想可以存储n个不同数据的树的数量,即考虑所有的方式来存储你的数据在这样的树中,那么你也应该能够很容易地得到它)。

让我们考虑完整二叉树的情况。如果你想要n片叶子,你可以在左边的子树中调用k叶子的数量,你会在右边有n-k个叶子。这些子树分别具有N(k)和N(n-k)个可能性, 然后你有N(n)=sum(N(k)*N(n-k), k=1..n-1)。 N(1)= 1。

这是加泰罗尼亚号码的(一个?)的定义:https://en.wikipedia.org/wiki/Catalan_number

N(n)=C(n-1) 

你可以做类似的事情三元树

+0

[加泰罗尼亚语](https://en.wikipedia.org/wiki/Catalan_number)用于完整的二叉树,例如总是2片树叶,[Motzkin](https://en.wikipedia.org/wiki/Motzkin_number)用于二叉树,例如, 1或2片叶子。 –