按照教材進行中序二叉樹線索化
線索化就是就將二叉樹的多出來的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.引入線索二叉樹 二叉樹的遍歷實質上是對乙個非線性結構實現線性化的過程,使每乙個節點 除第乙個和最後乙個外 在這些線性序列中有且僅有乙個直接前驅和直接後繼。但在二叉鍊錶儲存結構中,只能找到乙個節點的左 右孩子資訊,而不能直接得到節點在任一遍歷序列中的前驅和後繼資訊。這些資訊只有在遍歷的動態過程中才...