1. 程式人生 > >線索二叉樹--二叉樹線索化

線索二叉樹--二叉樹線索化

type 兩個 標記 typedef 指針 有一個 進行 查找 後繼節點

遍歷二叉樹是對非線性結構進行線性化操作,在得到的訪問序列中,每個節點都只有一個直接前去和一個直接後繼。

引入線索二叉樹可以加快查找前去於後繼節點的速度,實質就是將二叉鏈表中的空指針改為指向前驅或者後繼的線索,線索話就是在遍歷中修改空指針。

通常規定:對某一結點,若無左子樹,將lchild指向前驅結點;若無右子樹,將rchild指向後繼結點。

還需要設置左右兩個tag,用來標記當前是否有子樹。

若tag == 1,lchild指向結點前去;若rtag == 1,rchild指向結點後繼。

線索二叉樹的存儲結構如下:

typedef struct TreadNode{

Elemtype data;

struct TreadNode *lchild, *rchild;

int ltag,rtag;

}ThreadNode, *ThreadNode;

線索二叉樹--二叉樹線索化