2012-07-28 77 views
1

的這些值輸入到有序二叉樹:MercuryVenusEarthMarsJupiterSaturnUranus有序二叉樹字符串

由此產生的二叉樹應該是這樣的。

  Mercury 
     /  \ 
    Earth   Venus 
     \   /
     Jupiter Saturn 
     \  \ 
     Mars  Uranus 

這個訂單有什麼理由嗎?木星不應該在金星分支下面嗎?

+0

給定的樹對給定的插入順序不正確 - 「火星」應該是「地球」的右側子節點,而「木星」應該是「火星」的左側子節點,因爲當「Jupiter」節點不存在時插入'火星'。看到這個問題的正確順序 - [二進制搜索樹的字符串(平衡之前)](http://stackoverflow.com/q/20554826)。 – Dukeling 2013-12-12 22:15:36

回答

1

通過「有序二叉樹」,我假定你的意思是一個二叉搜索樹。只要滿足樹以下標準:

1. The key in a node is greater than (or equal to) any key stored in its left subtree. 
2. The key in a node is less than (or equal to) any key stored in its right subtree. 

然後該樹的確切結構取決於在其中添加鍵順序和用於構建樹的確切算法上。

然而,你表明你相信木星應該發生在金星的子樹中。你的訂購標準是什麼?如果名稱按字母順序進行比較,則顯示的樹是有效的。

+0

我明白了,我在想我們是按字母順序排列還是隨機插入樹中。我按字母順序來完成它。 – user1028145 2012-07-28 14:35:38