資料結構與演算法 樹的應用 二 二叉樹遍歷

2021-09-10 12:52:11 字數 1064 閱讀 3314

題目描述:

輸入:​ 兩個字串,其長度n均小於等於26。

​ 第一行為前序遍歷,第二行為中序遍歷。二叉樹中的結點名稱以大寫字母表示:最多26個結點

輸出:​ 輸入樣例可能有多組,對於每組測試樣例,輸出一行,為後序遍歷的字串。

樣例輸入:

abc

bacfdxeag

xdefag

樣例輸出:
bca

xedgaf

演算法分析:

​ 先根據先序遍歷與中序遍歷可以唯一確定一棵二叉樹,運用遞迴的演算法構造出二叉樹。然後在後序遍歷即可。

源**如下:

#include

#include

#include

using namespace std;

struct tnodetree[50]

;char str1[30]

;char str2[30]

;int loc;

tnode *

create()

tnode*

build

(int s1,

int e1,

int s2,

int e2)}if

(rootidx != s2)

// 有左子樹

ret->lchild =

build

(s1+

1,s1+

(rootidx-s2)

,s2,rootidx-1)

;if(rootidx != e2)

ret->rchild =

build

(s1+1+

(rootidx-s2)

,e1,rootidx+

1,e2)

;return ret;

}void

postorder

(tnode* root)

}int

main()

return0;

}

執行結果:

資料結構 考研筆記(二) 二叉樹的應用

計算二叉樹所有結點數 int n 0 void count btnode p 計算葉結點數 int n 0 void count 0 btnode p 利用右孩子指標連線葉結點 採用先序遍歷模板 void link ntnode p,btnode head,btnode tail else link...

資料結構 二叉樹 二 二叉樹的性質

滿二叉樹是每層的節點個數都達到了最多的二叉樹,如下圖所示 完全二叉樹是節點的編號順序與滿二叉樹一致,但最後一層的節點可能會在末尾連續得少一些,如下圖所示 從上往下數,第i層上最多有2 i 1 個節點。深度為k得二叉樹至多有2 k 1個節點 對任意一顆二叉樹,其終端節點 葉子節點 數為n0,度為2的節...

資料結構之樹 二 二叉樹 6 遍歷演算法的應用

建立二叉樹 按先序遍歷序列建立二叉樹的二叉鍊錶 例如,已知先序序列為abcdegf,建立二叉樹。因為只知道二叉樹的先序序列,所以二叉樹結構不唯一,可能有如下圖的兩種結構,那麼,怎麼區分這兩棵樹 補充空結點,如下圖,如果要構造上圖中左圖所示的二叉樹,則因按照abc de g f 空結點的字元以 代替 ...