1. 程式人生 > >以雙向線索連結串列為儲存結構的線索二叉樹遍歷

以雙向線索連結串列為儲存結構的線索二叉樹遍歷

二話不說上程式碼

前提條件:頭節點的lchild域指向二叉樹的根結點,rchild域指向中序遍歷時訪問的最後一個結點,同時令中序遍歷的第一個結點的lchild域和最後一個結點的rchild域指向頭結點。Link=0,Thread=1分別代表有孩子和有後繼節點,即有指標和有線索。

函式過程:先找到最左邊的結點,然後執行visit,然後,訪問後繼節點,如果有孩子,則第3個while停止,然後p=p->rchild,再然後重複找到最左邊結點。。。直到p是最後一個節點了,因為他的rchild=T所以第三個while停止,然後導致第一個while,最終return ok;