中序遍歷非遞歸演算法
發布時間: 2024-11-24 03:41:52
Ⅰ 數據結構的中序遍歷二叉樹的結點的非遞歸演算法
如圖
Ⅱ 計算機中中序遍歷不懂,求解
可以看一下下面的解釋:
按照二叉樹中序遍歷的定義,無論是訪問整棵樹還是其子樹,均應該遵循先訪問根結點的左子樹,然後訪問根結點,最後訪問根結點的右子樹的規律。因此對於一棵
樹t,如果t非空,首先應該進入t的左子樹訪問,此時由於t的根結點及右子樹尚未訪問,因此必須將t保存起來,放入棧中,以便訪問完其左子樹後從棧中取出
t,進行其根結點及右子樹的訪問,在整個二叉樹中序遍歷的過程中,程序要做的工作始終分為兩個部分:當前正在處理的樹(子樹)和保存在棧中待處理的部分
(註:當棧中元素位於棧頂即將出棧時,意味著其左子樹已訪問完,出棧後應該立即訪問其根結點,再進入其右子樹的訪問),只有這兩部分的工作均完成後,程序
方能結束。根據以上分析,得到二叉樹中序遍歷的非遞歸演算法,在演算法實現時,用了鏈式存儲結構。
熱點內容