樹與二叉樹 線索二叉樹

2021-09-13 20:16:51 字數 1101 閱讀 4789

若結點有左子樹,則其lchild域指向其左子樹,否則令lchild域指向其前驅;

若結點有右子樹,則其rchild域指向其右子樹,否則令rchild域指向其後繼;

為了避免混淆,需要改變結點結構,增加兩個標誌域,ltag, rtag,

結構如下圖所示:

0:    lchild域指向其左子樹

1:    lchild域指向其前驅

rtag : 

0:    rchild域指向其左子樹

1:    rchild域指向其後繼

以上這種節點結構構成的二叉鍊錶作為二叉樹的儲存結構,叫做線索鍊錶,其中指向結點前驅和後繼的指標,叫做線索。加上線索的二叉樹稱之為線索二叉樹

對二叉樹以某種遍歷使其變為線索二叉樹的過程叫做線索化。

下面將通過例項簡單介紹如何畫線索二叉樹:

畫線索的簡單步驟:

1.先寫出遍歷的結點次序

2.根據遍歷的次序依次畫其線索,如果該節點無左子樹,則將線索指向其前驅節點,如果該節點無右子樹,則將其線索指向其後繼節點。

3.檢驗方法是:

檢視該節點是否有左右子樹,如果無左右子樹,則分別有指向前驅和後繼的兩根線索;

如果有左子樹無右子樹,則只有指向其後繼的線索;

如果有右子樹無左子樹,則只有指向其前驅的線索;

二叉樹:

樹 二叉樹 線索二叉樹

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

二叉樹 線索二叉樹(C )

由於傳統的二叉樹鍊錶儲存僅能體現一種父子關係,不能直接得到結點在遍歷中的前驅或後繼,於是引入了線索二叉樹。遍歷二叉樹是以一定的規則將二叉樹中的結點排列成乙個線性序列,從而得到幾種遍歷序列,使得該序列中的每個結點 第乙個和最後乙個結點除外 都有乙個直接前驅和直接後繼。引入線索二叉樹正是為了加快查詢結點...

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

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