二叉樹已知前序和中序序列求後序序列(華科軟院上機)

2021-09-11 18:21:39 字數 611 閱讀 8538

問題分析:已知一顆二叉樹s的前序遍歷和中序遍歷序列,請程式設計輸出二叉樹s的後續遍歷序列。

(舉例:pre/先序:a、b、d、e、c、f、g;  in/中序:d、b、e、a、c、g、f;  後序遍歷序列是:d、e、b、g、f、c、a)

#include#include//在中序序列中查詢根節點下標的函式,函式引數為:根節點符號,中序序列,中序序列起始下標,中序序列結束下標

int findroot(char c,char in,int in_s,int in_e)

return i;

}// 遞迴求後序序列的函式,函式引數分別為:先序序列、先序序列起始下標、先序序列結束下標、中序序列、中序序列起始下標、中序序列結束下標

void postorder(char pre,int pre_s,int pre_e,char in,int in_s,int in_e)

else //如果中序序列不止乙個節點

if(r_len>0) //如果右子樹節點數大於0,遞迴處理右子樹

printf("%c",c); //最後後序輸出根節點c }}

int main()

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

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

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

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

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

例子,後序遍歷為 gbdehfca,中序遍歷為 dgbaechf 後序遍歷中的最後乙個元素是根節點,a,然後查詢中序中a的位置 把中序遍歷分成 dgba echf,而因為節點個數要對應 後序遍歷分為 gbd ehfc a,gbd為左子樹,ehfc為右子樹,這樣又可以遞迴計算了 最後形成的二叉樹如下所...