樹遍歷
題意:
您的任務是編寫一個程序,該程序根據以下算法執行樹遍歷(系統遍歷樹中的所有例程):
- 根、左子樹和右子樹(preorder)。
- 左子樹、根子樹和右子樹(inorder)。
- 左子樹、右子樹和根(postorder)。
思路:
創建一個結構left代表左子樹,right代表右子樹,pr代表父節點用於檢查是否為跟節點。
創建一個帶有結構的陣列依序填入所有值。
1 | for(int i = 0; i < n; i++){ |
接著尋找父節點,輸入的所有節點檢查pr為-1就是父節點。
1 | int getRoot(Node* tree, int *node, int n){ |
最後利用題目上敘的規則遞迴輸出。