中序線索二叉樹中找指定節點在後序下的前驅結點的演算法是什麼

2021-08-06 01:17:40 字數 1284 閱讀 7174

1樓:拍子

1.在後序序列中,若結點p有右子女,則右子女是其前驅,若無右子女而有左子女,則左子女是其前驅。

2.若結點p左右子女均無,設其中序左線索指向某祖先結點f(p是f右子樹中按中序遍歷的第一個結點),若f有左子女,則其左子女是結點p在後序下的前驅;若f無左子女,則順其前驅找雙親的雙親,一直繼續到雙親有左子女(這時左子女是p的前驅)。

3.還有一種情況,若p是中序遍歷的第一個結點,結點p在中序和後序下均無前驅。

2樓:

.[題目分析]在後序序列中,若結點p有右子女,則右子女是其前驅,若無右子女而有左子女,則左子女是其前驅。若結點p左右子女均無,設其中序左線索指向某祖先結點f(p是f右子樹中按中序遍歷的第一個結點),若f有左子女,則其左子女是結點p在後序下的前驅;若f無左子女,則順其前驅找雙親的雙親,一直繼續到雙親有左子女(這時左子女是p的前驅)。還有一種情況,若p是中序遍歷的第一個結點,結點p在中序和後序下均無前驅。

bithrtree inpostpre (bithrtree t,p)

//在中序線索二叉樹t中,求指定結點p在後序下的前驅結點qreturn(q); }//結束inpostpre

寫出中序線索二叉樹中找指定節點在後序下的前驅結點的演算法

3樓:

.[題目分析]在後序序列中,若結點p有右子女,則右子女是其前驅,若無右子女而有左子女,則左子女是其前驅。若結點p左右子女均無,設其中序左線索指向某祖先結點f(p是f右子樹中按中序遍歷的第一個結點),若f有左子女,則其左子女是結點p在後序下的前驅;若f無左子女,則順其前驅找雙親的雙親,一直繼續到雙親有左子女(這時左子女是p的前驅)。還有一種情況,若p是中序遍歷的第一個結點,結點p在中序和後序下均無前驅。

bithrtree inpostpre (bithrtree t,p)

//在中序線索二叉樹t中,求指定結點p在後序下的前驅結點qreturn(q); }//結束inpostpre

說明在中序線索二叉樹中找結點後繼的方法,並完成以下的演算法。

4樓:熊熊藻

在中序線索二叉樹中找結點後繼的方法: a.若rtag=1, 則rchild域直接指向其後繼 b.

若rtag=0, 其後繼應是遍歷其右子樹時訪問的第一個結點,即右子樹中最左下的結點。 if (p->rtag==1 ) return p->rchild ; q= p->rchild; while(q->ltag==0 ) q=q->lchild ; return q ; }// insucc

建立中序線索二叉樹,實現在這樣的中序線索二叉樹上的遍歷演算法

要實現bai本題的要求,du首先要建立 一棵zhi二叉樹,該二dao叉樹的建立策略其實內就是搜尋二叉容樹的建立原則,當陣列元素大於節點元素時,則陣列元素應插在當前節點的右分支上,若當前節點的右兒子為空,直接插入,否則一次依次往下比較 當陣列元素小於當前節點元素時,應當將其插在當前節點的左分支上,若當...

c 怎麼建立資料結構中的二叉樹?還有二叉樹怎麼線索化

這個東西bai建議你去看看資料du結構中的二叉樹。zhi在c 的daostl 基礎類庫 裡是有提供直接創內建二叉樹的庫文容件的。你直接呼叫就好了。線索化也分為前序,中序,後序三種 與遍歷順序相同 二叉樹的線索化用如下方法 每個結點有五個部分 leftflag leftchild,data right...

求用C語言寫的建立二叉樹。並且先序中序後序遍歷這個二叉樹

include include include 二叉樹資料結構定義 typedef struct binodebitnode,bitree 遞迴法建立二叉樹 void createbitree bitree bt else 遞迴法先序遍歷二叉樹 void preordertree bitree ro...