二叉樹 已知前序遍歷和中序遍歷,輸出後續遍歷

2021-08-26 19:28:53 字數 734 閱讀 2003

已知某二叉樹的先序序列和中序序列,程式設計計算並輸出該二叉樹的後序序列。

輸入說明:僅一組資料,分為兩行輸入,第一行表示指定二叉樹的先序序列,第二行表示該二叉樹的中序序列,序列元素均為大寫英文本元,表示二叉樹的結點。

輸出說明:在一行上輸出該二叉樹的後序序列。

輸入樣本:

abdgcefh

dgbaechf

輸出樣本:

gdbehfca

簡單 原始碼如下:

#include #include #define max 101

char preoder[max];

char inoder[max];

void build(int preleft,int preright,int inleft,int inright)

lsize = i - inleft;

rsize = inright - i;

//遞迴建立左子樹

if(lsize > 0) build(preleft + 1,preleft + lsize,inleft,i - 1);

//遞迴建立右子樹

if(rsize > 0) build(preleft + 1 + lsize,preright,i + 1,inright);

//輸出根結點

printf("%c",preoder[preleft]);

}}int main()

已知前序遍歷和中序遍歷求二叉樹

輸入某二叉樹的前序遍歷和中序遍歷的結果,請輸出後序遍歷序列。假設輸入的前序遍歷和中序遍歷的結果中都不含重複的數字。例如輸入前序遍歷序列和中序遍歷序列,重建二叉樹並返回後序遍歷序列 輸入某二叉樹的前序遍歷和中序遍歷的結果 輸出後序遍歷序列 1 2 4 7 3 5 6 8 4 7 2 1 5 3 8 6...

已知前序和中序遍歷恢復二叉樹

cpp view plain copy include using namespace std define treelen 6 資料結構定義 struct node void rebuild char ppreorder,char pinorder,intntreelen,node proot 獲...

已知前序和中序遍歷,重建二叉樹

想在牛客網上寫此題目,此處 題目描述 輸入某二叉樹的前序遍歷和中序遍歷的結果,請重建出該二叉樹。假設輸入的前序遍歷和中序遍歷的結果中都不含重複的數字。例如輸入前序遍歷序列和中序遍歷序列,則重建二叉樹並返回。分析 前序遍歷 根節點 左子樹 右子樹 中序遍歷 左子樹 根節點 右子樹 後序遍歷 左子樹 右...