順序儲存二叉樹 線索化二叉樹

2021-10-02 07:41:05 字數 895 閱讀 1593

二叉樹並不是每乙個指標都能夠都能完全被利用上,葉子節點的兩個指標都沒有被引用,為空。希望充分利用其所有指標,在二叉樹的順序儲存結構中用其剩餘指標分切指向某種遍歷順序下前驅節點和後繼節點

圖示:

//先線索化左子樹

threadednotes

(node.

getleft()

);//線索化當前節點

//先處理當前節點的前驅節點

if(node.

getleft()

== null)

//處理後繼節點,在遞迴的時候由下一次處理

if(pre != null && pre.

getright()

== null)

//每處理乙個節點,讓當前節點是下乙個節點的前驅節點

//迭代的條件

pre = node;

//再線索化右子樹

threadednotes

(node.

getright());}

class

heroarragement

遞迴的順序就是按照中序遍歷,結束條件是是否已經到葉子節點,到了葉子節點再將前後空的指標連起來。

樹 二叉樹 線索二叉樹

一 線索二叉樹 1 什麼是線索化 將二叉樹以某種次序將其遍歷,得到線性序列,就是將非線性結構進行線索化。線索化的優點就是可以很快地得到前驅或後繼。如果儲存線索化的線性序列 儲存二叉樹地線索化序列的其中一種方法就是在結點上加兩個指標,乙個指向前驅乙個指向後繼,這樣的缺點就是儲存密度大大降低。另一種方法...

二叉樹線索化

二叉樹的線索化可以使得二叉樹的非遞迴遍歷不需借助棧或佇列這種資料結構,最主要的是可以為之提供迭代器。線索化二叉樹有三種方式 前序線索化 中序線索化 後序線索化 後序線索化需要三叉鏈結構 這裡主要講前序線索化和中序線索化,並為中序線索化提供迭代器。線索化的思想就是將一顆二叉樹遍歷轉換成有序雙向鍊錶進行...

二叉樹線索化

名稱 二叉樹線索化 說明 這個東西,一開始弄起來,我去,感覺老複雜了。照著書上看了好久,愣是沒看懂,照著敲了一遍,又手動模擬推了一遍,有了一點思路。照著把後序的線索化和遍歷也敲出來了。這裡要注意的是 對於中序來說,其能線索化後訪問到其前驅和後繼 可以理解為不通過棧訪問到 而對於後序來說,其只能不通過...