我瞭解如何在二叉搜索樹上進行inorder,preorder和postorder遍歷的代碼。不過,我對這個應用程序感到困惑。什麼時候使用inorder,preorder和postorder遍歷
你什麼時候使用每個?說明每種遍歷方法何時最有意義的情況將非常有幫助。
謝謝!
我瞭解如何在二叉搜索樹上進行inorder,preorder和postorder遍歷的代碼。不過,我對這個應用程序感到困惑。什麼時候使用inorder,preorder和postorder遍歷
你什麼時候使用每個?說明每種遍歷方法何時最有意義的情況將非常有幫助。
謝謝!
中序遍歷只是按照定義的順序處理項目。例如,如果您有一個BST的單詞或名稱列表,那麼遍歷將按順序打印出來。
預過程和後序遍歷最經常應用於二叉搜索樹以外的樹。例如,爲了評估像A + B * C
的表達,可以創建這樣的樹:
爲了評估表達式,遍歷樹在後序,從它的每個子的施加每個操作者的值 - 樹。
如果您希望(例如)使用類似Lisp的語言生成輸出,則預置遍歷可用於大致相同的目的,因此表達式應爲(add A (mul B C))
。
你有可能重拍/重新鏈接你的圖片嗎? –
謝謝你的提議,但現在我回家了,我可以看到圖像。必須被我工作的防火牆阻止(限制互聯網訪問!)。 –
@ChrisKnight:是的,對此我可以做的不多。 –
可能的重複[何時使用預訂,後序和中間二進制搜索樹遍歷策略](http://stackoverflow.com/questions/9456937/when-to-use-preorder-postorder-and-inorder-binary -search-tree-traversal-strate) –