根據後序和中序輸出前序

2021-10-06 04:22:47 字數 580 閱讀 8023

本題要求根據給定的一棵二叉樹的後序遍歷和中序遍歷結果,輸出該樹的先序遍歷結果。

第一行給出正整數n(≤30),是樹中結點的個數。隨後兩行,每行給出n個整數,分別對應後序遍歷和中序遍歷結果,數字間以空格分隔。題目保證輸入正確對應一棵二叉樹。

在一行中輸出preorder:以及該樹的先序遍歷結果。數字間有1個空格,行末不得有多餘空格。

7

2 3 1 5 7 6 4

1 2 3 4 5 6 7

preorder: 4 1 3 2 6 5 7
思路:

後序:左子樹,右子樹,根

中序:左子樹,根,右子樹

在中序中找到根(後續的最後乙個元素),遞迴的構建左子樹和右子樹。

**;

#include#includeusing namespace std;

void build(int post,int in,int postleft,int postright,int inleft,int inright)

int main()

根據前序和中序推出後序

最近面試總遇到這種根據給出的兩類序遍歷,然後求按另一種形式序的遍歷。看來有必要好好總結下這個知識點,省的每次筆試時都得花不少時間推導。首先,我們看看前序 中序 後序遍歷的特性 前序遍歷 根 左 右 1.訪問根節點 2.前序遍歷左子樹 3.前序遍歷右子樹 中序遍歷 左 根 右 1.中序遍歷左子樹 2....

根據前序中序求後序

如前序 為 abdecgf 中序 為 bdacgef 先 根據前序第乙個節點 把中序分為bd和cgef兩部分,a為根節點,a左邊為左子樹,右邊為右子樹。再把左右子樹分別做上述步驟。以此類推 根據第二,第三.個節點構成二叉樹 a b e d c f g b 再根據後序的性質得到dbgcbfea 知道後...

C 根據 前序 中序遍歷輸出後序遍歷

include include void printt char pred,int pre start,int pre end,char inod,int in start,int in end intmain void printt char pred,int pre start,int pre ...