C 線索二叉樹的線索化和遍歷

2022-06-29 02:45:09 字數 695 閱讀 8171

#include#include

//線索二叉樹結構化

templatetypedef

struct

threadnodethreadnode,*threadtree;

//中序線索二叉樹 線索化

//1.線索化的演算法

void inthread(threadtree &p, threadtree &pre)

if(pre != null && pre->rchild == null)

pre = p;//

將本次訪問的結點序號作為pre傳給下乙個被訪問的結點

inthread(p->rchild, pre);

//當所有遞迴執行完時,最後乙個節點的必含乙個空的後繼指標域}}

//2.執行線索化的函式

void createinthread(threadtree &t)}//

線索二叉樹的遍歷

//1.尋找中序遍歷的第乙個結點

threadnode* firstnode(threadnode *p)

returnp;}

//2.尋找某結點的下乙個節點

threadnode* nextnode(threadnode *p)

else}//

3.遍歷

void bianli(threadnode*t)

}

線索化二叉樹以及遍歷線索化二叉樹

1.線索二叉樹基本介紹 n個結點的二叉鍊錶中含有n 1 公式 2n n 1 n 1 個空指標域。利用二叉鍊錶中的空指標域,存放指向該結點在某種遍歷次序下的前驅和後繼結點的指標 這種附加的指標稱為 線索 這種加上了線索的二叉鍊錶稱為線索鍊錶,相應的二叉樹稱為線索二叉樹 threaded binaryt...

(C )二叉樹的線索化 線索二叉樹

線索化標誌tag enum pointertag 結點結構 template struct binarytreenodethd 基類迭代器 template struct binarytreeiterator t operator t operator bool operator const sel...

遍歷線索化二叉樹

常規的線索化方式 採用遞迴地呼叫的方式,判定條件是當前指標的左子樹是否為空 實現 public void midorder system.out.println this if this right null 對比 但是對二叉樹進行線索化之後,不存在空的左右指標,但是單獨設定每乙個指標的型別,故而條...