線索二叉樹的定義 結構以及線索化

2021-09-27 13:30:39 字數 573 閱讀 6630

1、線索二叉樹的基本概念:

在二叉樹的每個結點中增加兩個指標域,用於存放遍歷二叉樹時得到的直接前驅和直接後繼的資訊。

2、線索二叉樹的結點構造:

ltag=0時,表示lchild指向結點的左孩子,lchild是乙個指標(結點有左孩子)

ltag=1時,表示lchild指向結點的直接前驅,lchild是乙個線索(結點無左孩子)

rtag=0時,表示rchild指向結點的右孩子(結點有右孩子)

rtag=1時,表示rchild指向結點的直接後繼(結點無右孩子)

線索二叉樹的結點定義:

typedef struct tnodetnode;
3、以p為根結點的二叉樹中序線索化:

void inthread (tnode *p,*pre)

else p->ltag=0;

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

else pre->rtag=0;

pre=p;

inthread(p->rchild,pre);

}

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

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...

線索二叉樹的線索化演算法

在嚴蔚敏的 資料結構 一書中,所使用的 存在一些小問題。原版 就不附上了,主要問題是 1.inthreading函式的引數,應該攜帶pre,這應該是比較嚴重的問題。如果沒有攜帶pre,則對pre的修改只是在呼叫的函式中的區域性變數的值的修改,沒有影響到原來的pre的值。2.在條件語句中,將命中概率高...