主要使用了一個方向值orien,記錄在二叉樹中搜索時的路徑方向,比如由父節點到左子樹時orien值爲1,這樣按照嚴格的行走規則,在一個while循環裏就能遍歷整棵樹。
一個簡單的例子:
一棵樹爲: 8
4 12
2 6 10 14
1 3 5 7 9 11 13 15
那麼程序將採用一個相當於後序遍歷的順序對樹進行遍歷,對於一個節點,將先搜索左子樹,再搜索右子樹,然後輸出該節點的值。根據orien值的不同,對遍歷的下一步走向進行
選擇,具體看printTree中的while循環。對於上面這棵樹,輸出順序爲:1 3 2 5 7 6 4 9 11 10 13 15 14 12 8。
程序沒有測試一些特殊情況,可能存在bug,歡迎指正;若有啥問題歡迎交流!