2013-10-25 69 views
0

我解決我的家庭作業的數據結構和算法課程,我碰到這個問題來了:建立二叉樹出給定遍歷

「給定兩個穿越的方法可以預購和後序,預購和有序,後序和有序,我們可以提取多少二叉樹?「

現在我知道你當然無法從一個遍歷順序中找到二叉樹,但是這兩個遍歷中的哪一個只會給你一個二叉樹?如何 ?以及那些沒有舉例說明一棵二叉樹的地方,它們有多少二叉樹可以作爲例證,我們如何計算這個數字?

+3

這個問題是來自計算機科學作業的問題,不涉及編程,因此是題外話題。 – HaskellElephant

回答

1

我相信this source很有用。樹的前置和後置遍歷不足以在沒有進一步限制的情況下唯一地重構它。然而,一個算法展示瞭如何從它的後序重構樹並按順序進行並且最後一種情況有些對稱我認爲這是算法證明了一棵樹可以從它的inorder和任何其他遍歷中唯一地重構。

+0

但你確定給定任何兩個遍歷方法,我只能找到一個確切的二叉樹?你有什麼簡單的證明? –

+0

其實我沒有,但我已經爲編程競賽的兩個案例創建了一個算法(我認爲是前後訂單以及預購)。因爲我相信第三個有點勉強,所以我認爲這是一個算法證明 –

+0

我在某個地方讀了一個有序的參與,你不能生成一棵樹!所以你也不太確定你呢? –