基本說明
1.二叉鍊錶中,n個節點,含有2n個指標;除根節點外,每個節點都要乙個指標引用,總共需要n-1個指標;含2n-(n-1)=n+1個空指標域
2.利用二叉鍊錶中的空指標域,存放指向該結點在某種遍歷次序下的前驅和後繼結點的指標,這種附加的指標稱為"線索"
(1)二叉樹進行遍歷,遍歷後的順序;前驅節點:乙個節點的前乙個節點;後繼節點:乙個節點的後乙個節點;前序、中序、後序遍歷產生的前驅節點、後續節點可能不同
(2)這種加上了線索的二叉鍊錶稱為線索鍊錶, 相應的二叉樹稱為線索二叉樹
(3)根據線索性質的不同, 線索二叉樹可分為前序線索二叉樹、中序線索二叉樹、後序線索二叉樹
3.節點的left可能指向左子樹,也可能指向前驅節點;節點的right可能指向右子樹,也可能指向後續節點
線索二叉樹的遍歷
1.線索化後,各個結點指向有變化,原來的遍歷方式不能使用,需要使用新的方式遍歷線索化二叉樹,各個節點可以通過線性方式遍歷,無需使用遞迴方式,提高了遍歷的效率,哪種線索化就對應哪種遍歷次序
2.實現思路(中序遍歷)
(1)定義乙個指標,初始指向root,找最深層的具有前驅結點的左節點,並列印
(2)沿著左節點遍歷列印其後繼節點,直到沒有後繼節點,指標指向當前步驟最後乙個後繼節點
(3)以指標指向其右節點作為新的起始節點,繼續找當前步驟最深層的具有前驅節點的左節點
(4)直到最後得到的右節點為 null
線索化二叉樹以及遍歷線索化二叉樹
1.線索二叉樹基本介紹 n個結點的二叉鍊錶中含有n 1 公式 2n n 1 n 1 個空指標域。利用二叉鍊錶中的空指標域,存放指向該結點在某種遍歷次序下的前驅和後繼結點的指標 這種附加的指標稱為 線索 這種加上了線索的二叉鍊錶稱為線索鍊錶,相應的二叉樹稱為線索二叉樹 threaded binaryt...
線索化二叉樹
define crt secure no warnings 1 includeusing namespace std enum pointertag 列舉 其結構如下 void prevorderthreading 前序 void postorderthreading 後序 void inorder...
線索化二叉樹
二叉樹是一種非線性結構,遍歷二叉樹幾乎都是通過遞迴或者用棧輔助實現非遞迴的遍歷。用二叉樹作為儲存結構時,取到乙個節點,只能獲取節點的左孩子和右孩子,不能直接得到節點的任一遍歷序列的前驅或者後繼。為了儲存這種在遍歷中需要的資訊,我們利用二叉樹中指向左右子樹的空指標來存放節點的前驅和後繼資訊.二叉樹的結...