樹的先序 中序 推後序, 後序 中序 推先序

2022-05-04 01:45:10 字數 734 閱讀 9016

/**

根據中序遍歷 先序遍歷構建 輸出後序遍歷

後序遍歷為左右根

遞迴的返回條件中序遍歷中 左子樹和右子樹

過i將中序遍歷中的樹分為左子樹和右子樹 (i為中序遍歷的根節點(需要輸出的結點(每棵樹都是自己

的根結點))

2.確定左子樹的start,與 end範圍,同時通過先序陣列找到此時的根節點(上乙個根結點+1)

3.確定右子樹的start,與 end範圍,

//同時通過先序陣列找到此時的根節點(上乙個根結點+左結點的個數+1)(左結點的個數是i-start)

4.重複遞迴,直到所有點都被遍歷

**/

#includeusing namespace std;

int pre = ;

int in = ;

//左右根

void post(int root,int start,int end)

int main()

後序遍歷與中序遍歷推出先序遍歷:

#includeusing namespace std;

int post = ;

int in = ;

void pre(int root,int start,int end)

int main()

至於先序 後序 轉 中序 結果不是唯一的 eg: ab ba (無法確定 b結點連著a結點左邊或者右邊)

關於 先序 後序 轉 中序的題

後序 中序 》先序

已知後序與中序輸出前序 先序 後序 3,4,2,6,5,1 左右根 中序 3,2,4,1,6,5 左根右 分析 因為後序的最後乙個總是根結點,令i在中序中找到該根結點,則i把中序分為兩部分,左邊是左子樹,右邊是右子樹。因為是輸出先序 根左右 所以先列印出當前根結點,然後列印左子樹,再列印右子樹。左子...

樹 先序中序後序遍歷

題目分析 題目描述 description 求一棵二叉樹的前序遍歷,中序遍歷和後序遍歷 輸入描述 input description 第一行乙個整數n,表示這棵樹的節點個數。接下來n行每行2個整數l和r。第i行的兩個整數li和ri代表編號為i的節點的左兒子編號和右兒子編號。輸出描述 output d...

已知先序和中序求後序或中序和後序求先序

首先介紹樹的三種遍歷方式的遍歷順序 先序遍歷 根 左子樹 右子樹 特點 第乙個元素為根 中序遍歷 左子樹 根 右子樹 特點 根的兩邊分別為左子樹和右子樹 後序遍歷 左子樹 右子樹 根 特點 最後乙個元素為根 有如下圖的二叉樹 其先序 中序 後序遍歷分別為 dbacegf abcdefg acbfge...