#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 對比 但是對二叉樹進行線索化之後,不存在空的左右指標,但是單獨設定每乙個指標的型別,故而條...