2017-07-07 35 views
1

例如有多少二叉樹可以滿足給定的前序遍歷和後序遍歷?

preorder-> 0,1,2

postorder-> 2,1,0

 0 
    /
    1 
/
    2 

     0 
    /
    1 
    \ 
     2 

     0 
     \ 
     1 
    / 
     2 

     0 
     \ 
     1 
     \ 
      2 

這些是4個二叉樹可能以上case.How許多樹是一般可用於任何前序和後序遍歷?

+0

這與編程有什麼關係?如果你覺得它確實如此,你能否提供你的代碼,並指出它的問題是什麼?否則,這似乎是一個可能更適合[maths.stackexchange.com](https://math.stackexchange.com)的問題。 – trincot

+0

你已經知道有兩個節點會有兩棵可能的樹,而三個節點有四棵可能的樹。如果你用四個節點進行上述練習,你很可能會發現進展。 –

回答

0

有兩種回答您的問題:

  • 對於二進制樹的後序給予序和遍歷,你只能找到一棵樹。 (注意對二進制的強調!我只允許根具有2級)
    示例草圖在this answer中給出,您也可以在其中找到重建算法。

  • 如果你的樹被允許有2級的內部節點,即只有一個孩子的節點,那麼你可以把它放在左邊或右邊,前後序中相應的子樹位置遍歷不會改變。所以如果你有k這樣的節點,你有2^k等價樹