2013-02-07 61 views
3

我瞭解如何在二叉搜索樹上進行inorder,preorder和postorder遍歷的代碼。不過,我對這個應用程序感到困惑。什麼時候使用inorder,preorder和postorder遍歷

你什麼時候使用每個?說明每種遍歷方法何時最有意義的情況將非常有幫助。

謝謝!

+0

可能的重複[何時使用預訂,後序和中間二進制搜索樹遍歷策略](http://stackoverflow.com/questions/9456937/when-to-use-preorder-postorder-and-inorder-binary -search-tree-traversal-strate) –

回答

6

中序遍歷只是按照定義的順序處理項目。例如,如果您有一個BST的單詞或名稱列表,那麼遍歷將按順序打印出來。

預過程和後序遍歷最經常應用於二叉搜索樹以外的樹。例如,爲了評估像A + B * C的表達,可以創建這樣的樹:

enter image description here

爲了評估表達式,遍歷樹在後序,從它的每個子的施加每個操作者的值 - 樹。

如果您希望(例如)使用類似Lisp的語言生成輸出,則預置遍歷可用於大致相同的目的,因此表達式應爲(add A (mul B C))

+0

你有可能重拍/重新鏈接你的圖片嗎? –

+0

謝謝你的提議,但現在我回家了,我可以看到圖像。必須被我工作的防火牆阻止(限制互聯網訪問!)。 –

+0

@ChrisKnight:是的,對此我可以做的不多。 –

相關問題