n個結點,有n+1個空指標,利用這些空指標存放某種遍歷次序下該結點的前驅結點和後繼結點的指標,這些指標成為線索,加上線索的二叉樹成為線索二叉樹。
線索化即是遍歷過程中給空指標賦相應的值。
例如中序線索化:
1:線索化左子樹
2:若p->lchild為空,則置p->ltag=1,且p->lchild=pre;
若pre->rchild為空,則置pre->rtag=1,且pre->rchild=p;pre=p;
3:線索化右子樹
注意:(1)先序線索化:可以求先序後繼,左存->左
左不存->右
->右不存->右線索
先序線索化:不能求先序前驅
(2)中序線索化:可以求中序前驅,左右下
也可以求中序後繼,右左下
(3)後續線索化:可以求後序前驅,右存->右
右不存->左
->左不存->左線索
後續線索化:不能求後序後繼
線索化二叉樹以及遍歷線索化二叉樹
1.線索二叉樹基本介紹 n個結點的二叉鍊錶中含有n 1 公式 2n n 1 n 1 個空指標域。利用二叉鍊錶中的空指標域,存放指向該結點在某種遍歷次序下的前驅和後繼結點的指標 這種附加的指標稱為 線索 這種加上了線索的二叉鍊錶稱為線索鍊錶,相應的二叉樹稱為線索二叉樹 threaded binaryt...
線索化二叉樹
define crt secure no warnings 1 includeusing namespace std enum pointertag 列舉 其結構如下 void prevorderthreading 前序 void postorderthreading 後序 void inorder...
線索化二叉樹
二叉樹是一種非線性結構,遍歷二叉樹幾乎都是通過遞迴或者用棧輔助實現非遞迴的遍歷。用二叉樹作為儲存結構時,取到乙個節點,只能獲取節點的左孩子和右孩子,不能直接得到節點的任一遍歷序列的前驅或者後繼。為了儲存這種在遍歷中需要的資訊,我們利用二叉樹中指向左右子樹的空指標來存放節點的前驅和後繼資訊.二叉樹的結...