已知某二叉樹的先序序列和中序序列,程式設計計算並輸出該二叉樹的後序序列。
輸入說明:僅一組資料,分為兩行輸入,第一行表示指定二叉樹的先序序列,第二行表示該二叉樹的中序序列,序列元素均為大寫英文本元,表示二叉樹的結點。
輸出說明:在一行上輸出該二叉樹的後序序列。
輸入樣本:
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 獲...
已知前序和中序遍歷,重建二叉樹
想在牛客網上寫此題目,此處 題目描述 輸入某二叉樹的前序遍歷和中序遍歷的結果,請重建出該二叉樹。假設輸入的前序遍歷和中序遍歷的結果中都不含重複的數字。例如輸入前序遍歷序列和中序遍歷序列,則重建二叉樹並返回。分析 前序遍歷 根節點 左子樹 右子樹 中序遍歷 左子樹 根節點 右子樹 後序遍歷 左子樹 右...