線索二叉樹 資料結構

2021-07-05 10:35:49 字數 881 閱讀 2263

按照教材進行中序二叉樹線索化

線索化就是就將二叉樹的多出來的n+1個鏈域用做指向前驅和後繼用,前驅後繼指的是按中序遍歷二叉樹產生的前驅和後繼

ltag=0 有左孩子  ltag=1 無左孩子,指向前驅

rtag=0 有右孩子 rtag=1 無右孩子,指向後繼

例子**:  構造二叉樹   形如abc##de###fg###

#include#include#includetypedef char elemtype; 

typedef enum poninttag;//link==0,指標,tread==1,線索

//enum用法參見 enum平時基本沒用到過 比較模糊

typedef struct tnode

tnode,*bintree;

bintree pre; //前驅結點

先序遞迴構造二叉樹 形如abc##de###fg###

void creattree(bintree &t)

}void preordtree(bintree t) }

void intreading(bintree p) //線索化

if(!pre->rchild) //後繼線索

pre=p; //保證pre指向前驅結點

intreading(p->rchild); //右子樹線索化 }}

void inordtreading(bintree &thrt,bintree t)

}void inordtrevalthrd(bintree t)

p=p->rchild;

} //printf("\n");

}int main()

資料結構(線索二叉樹)

線索二叉樹的前序,中序,後序 typedef struct nodenode 前序線索二叉樹 參照中序即可 void prethread node p,node pre if pre null pre rchild null pre p if p ltag 0 prethread p lchild,...

資料結構 線索二叉樹

1.定義 在二叉樹的結點上加上線索的二叉樹稱為線索二叉樹,對二叉樹以某種遍歷方式 前序 中序 後序或層序 進行遍歷,使其變為線索二叉樹的過程稱為對二叉樹進行線索化。2.本質 二叉樹的遍歷實質上是對乙個非線性結構進行線性化的過程,它使得每個結點 除第乙個和最後乙個 在這些線性序列中有且僅有乙個直接前驅...

二叉樹的中序線索樹 資料結構 線索二叉樹

1.引入線索二叉樹 二叉樹的遍歷實質上是對乙個非線性結構實現線性化的過程,使每乙個節點 除第乙個和最後乙個外 在這些線性序列中有且僅有乙個直接前驅和直接後繼。但在二叉鍊錶儲存結構中,只能找到乙個節點的左 右孩子資訊,而不能直接得到節點在任一遍歷序列中的前驅和後繼資訊。這些資訊只有在遍歷的動態過程中才...