【问题标题】:for Binary tree, suppose there is n node, how many different structure can I construct?对于二叉树,假设有n个节点,我可以构造多少种不同的结构?
【发布时间】:2011-03-25 23:59:00
【问题描述】:

考虑具有 n 个节点的二叉树。有多少种可能的二叉树结构?

我尝试了类似的方法:

n   number of different structure:

1        1
2        4
3        16

n >1 的 4(n-1) 也是如此; 1 代表 n == 1?

【问题讨论】:

  • 尝试几个简单的案例。如果 n = 2,您的方程式表明将有 4 种不同的结构,而只有 2 种……也许 2 被提升到某个幂? (提示提示)

标签: binary-tree catalan


【解决方案1】:

使用n个节点可以形成的不同二叉树的数量由第n个加泰罗尼亚数给出。

number of nodes (n)   binary trees C(n)  
1                     1  
2                     2  
3                     5  
4                     14   

见:

http://en.wikipedia.org/wiki/Binary_tree
http://en.wikipedia.org/wiki/Catalan_number

【讨论】:

  • Ouais Alsharif 是正确的!我错误地指出了加泰罗尼亚语系列。他的编辑被匆忙审查。
【解决方案2】:

当节点的值不重要时,Adrian Toman 之前的回答是正确的,只考虑树的结构(参考相同的维基百科链接)。

当节点值也很重要时,计算是不同的。加泰罗尼亚数字为您提供树的不同可能结构的数量。现在,您可以在每个结构中排列节点(排列)。因此,对于节点的值很重要的 n 个节点,不同树的总数由公式给出 -

第n个加泰罗尼亚数字* n!

nodes (n)    trees C(n) * n!
1            1
2            4 (= 2 * 2)
3            30 (= 5 * 6)
4            336 (= 14 * 24)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-01-05
    • 1970-01-01
    • 2015-04-09
    • 1970-01-01
    • 1970-01-01
    • 2011-06-09
    • 1970-01-01
    相关资源
    最近更新 更多