先序遍歷結果:abdce
中序遍歷結果:bdace
後序遍歷結果:dbeca
使用理由:二叉鍊錶不能夠直接得到結點在遍歷序列中的前驅和後繼資訊。
線索二叉樹結構:
這裡lchild和rchild都是指向結點的指標域
ltag=0,lchild域指示結點的左孩子
ltag=1,lchild域指示結點的遍歷前驅
rtag=0,rchild域指示結點的右孩子
rtag=1,rchild域指示結點的遍歷後繼
通俗的解釋如下:
以上面的二叉樹為例,它的先序遍歷是:abdce
則對於d結點,它的前驅結點是b,後繼結點是c。
然後由圖我們發現d結點的lchild和rchild指標域都為空(ltag=rtag=0),
那麼先序線索二叉樹如下(不完整,只是以d結點為例子。因為對於d結點其ltag=rtag=0,d結點就可以畫如下圖兩條線索):
依次類推可以畫出b、c、e結點的線索,e結點沒有後繼結點,線索會指向空。由於a結點左右沒有空指標域,所以沒有線索。
關於二叉樹初始化和遍歷演算法**
資料結構 二叉樹有遍歷的想法
include include using namespace std define len 30 typedef struct treenodetreenode 按照從左到右,從上到下給二叉樹賦值 treenode init int init arr,int lens else treearr i...
資料結構 二叉樹 反轉二叉樹
include using namespace std define maxsize 1000 struct binary tree node class queue queue queue void queue push binary tree node btn binary tree node ...
《資料結構》 二叉樹
二叉樹 是 n個結點的有限集,它或為空集,或由乙個根結點及兩棵互不相交的 分別稱為該根的左子樹和右子樹的二叉樹組成。二叉樹不是樹的特殊情況,這是兩種不同的資料結構 它與無序樹和度為 2的有序樹不同。二叉樹的性質 1 二叉樹第 i層上的結點數最多為 2 i 1 2 深度為 k的二叉樹至多有 2 k 1...