二叉树未标记节点

时间:2014-02-09 05:30:50

标签: algorithm binary-tree

可以使用3个未标记节点形成的二叉树数量。

几个地方的答案是5。

但根据我的回答应该是1,因为我们将使用三个节点制作的所有树都将是同构的。

1 个答案:

答案 0 :(得分:0)

从n个节点生成的树的数量等于第n个catalan number

更准确地说,这是形成的树的递归方程: -

T(n) = sum(T(i)*T(n-1-i)) where i in (0,n-1)

示例: -

  

考虑5个节点的二叉树。

     
      
  1. 保留一个作为root,我们可以将rest 4分成子树a a

         

    (1,3),(2,2),(3,1)其中第一个tupple是子树,第二个是第三个   子树

  2.   
  3. 您可以进一步对子树进行不同的排列: -

         

    T(5)= T(1)* T(3)+ T(2)* T(2)+ T(3)* T(1)

  4.   
  5. 上述方法可以推广到上面给出的递归关系,可以使用advance估算为加泰罗尼亚数   数学

  6.   

您的示例: -

T(3) = T(1)*T(1) + T(2)*T(0) + T(0)*T(2)

As T(2) = 2 (1 right aligned & 1 left aligned tree)   and T(1) = 1 , T(0) = 1

T(3) = 1*1 + 2*1 + 1*2 = 5