二叉樹已知前序 中序轉後序輸出

2021-09-21 07:10:51 字數 732 閱讀 3564

後序:左、右、根

中序:左、根、右

前序:根、左、右

前序序列:1,2,3,4,5,6

中序序列:3,2,4,1,6,5

前序序列中的第乙個結點必定是樹的根結點,令這個結點為root,root把這棵樹分為了左右兩棵子樹。i為root所表示的值在中序中的下標,所以i即是分隔中序中對應root結點的左子樹和右子樹的下標。

先列印左子樹,後列印右子樹,最後輸出當前根結點pre[root]的值。

#include

using namespace std;

int pre=

;//前序序列

int in=

;//中序序列

void

post

(int root,

int start,

int ends)

int i=start;

while

(i!=pre[root]

)post

(root+

1,start,i-1)

;//遍歷左子樹

post

(root+

(i-start+1)

,i+1

,ends)

;//遍歷右子樹

cout<<<

' ';

}int

main()

二叉樹 已知前序和中序,求後序

題目描述 若某二叉樹的前遍歷訪問順序是序abdgcefh,中序遍歷順序是dgbaechf,則後序遍歷的訪問順序是什麼。若某二叉樹的前遍歷訪問順序是序abdgcefh,中序遍歷順序是dgbaechf,則後序遍歷的訪問順序是什麼。分析 首先要明確乙個基礎的問題,前序遍歷的順序是 根 左 右 中序遍歷的順...

二叉樹 已知前序 中序或中序 後序構造樹

一 已知二叉樹的中序和後序序列,求二叉樹的前序序列。如 中序 dbgeafc 後序 dgebfca後序的最後一位就是二叉樹的根節點,再根據根節點在中序序列裡的位置,可知道左右子樹,遞迴求解。include include include char pre 1500 用字串儲存前序序列 int k v...

已知二叉樹的前序和中序,求後序

以前在學習資料結構的時候,經常會有一道選擇題,已知二叉樹的前序和中序遍歷,求二叉樹的後序遍歷。後來想到用程式設計的方法來實現它,限於水平有限,一直無從下手。後來,受另乙個問題啟發,才想出其解法 include include include typedef struct btree btree en...