PTA 根據後序和中序遍歷輸出先序遍歷 25分

2021-10-05 03:05:28 字數 987 閱讀 3496

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

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

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

723

1576

4123

4567

preorder:41

3265

7

在後序遍歷的最後乙個數字4是根結點,在中序遍歷中找到根結點4,4左邊的序列1 2 3共3個結點是左子樹的中序遍歷,4右邊的序列5 6 7共3個結點是右子樹的中序遍歷。在後序遍歷中前3個結點2 3 1是左子樹的後序遍歷,緊接著的3個結點5 7 6是右子樹的後序遍歷。即變成了兩個子樹的後序遍歷和中序遍歷序列以及根結點。

左子樹的後序遍歷為2 3 1

左子樹的中序遍歷為1 2 3

右子樹的後序遍歷為5 7 6

右子樹的中序遍歷為5 6 7

根結點為4

按同樣的步驟可以將左子樹也分成左子樹、右子樹和根這3部分,右子樹也可以分成左子樹、右子樹和根這3部分。

然後遞迴建立樹,最後遞迴先序遍歷樹輸出。

#include

using

namespace std;

struct tree

;int p1[35]

,p2[35]

;struct tree *

creat

(int front1,

int rear1,

int front2,

int rear2)

void

previsit

(struct tree *root)

}int

main()

根據後序和中序遍歷輸出先序遍歷(PTA)

本題要求根據給定的一棵二叉樹的後序遍歷和中序遍歷結果,輸出該樹的先序遍歷結果。輸入格式 第一行給出正整數n 30 是樹中結點的個數。隨後兩行,每行給出n個整數,分別對應後序遍歷和中序遍歷結果,數字間以空格分隔。題目保證輸入正確對應一棵二叉樹。輸出格式 在一行中輸出preorder 以及該樹的先序遍歷...

PTA 根據後序中序遍歷輸出先序遍歷

本題要求根據給定的一棵二叉樹的後序遍歷和中序遍歷結果,輸出該樹的先序遍歷結果。輸入格式 第一行給出正整數n 30 是樹中結點的個數。隨後兩行,每行給出n個整數,分別對應後序遍歷和中序遍歷結果,數字間以空格分隔。題目保證輸入正確對應一棵二叉樹。輸出格式 在一行中輸出preorder 以及該樹的先序遍歷...

PTA 根據後序和中序遍歷輸出先序遍歷(25 分)

要細心 本題要求根據給定的一棵二叉樹的後序遍歷和中序遍歷結果,輸出該樹的先序遍歷結果。第一行給出正整數n 30 是樹中結點的個數。隨後兩行,每行給出n個整數,分別對應後序遍歷和中序遍歷結果,數字間以空格分隔。題目保證輸入正確對應一棵二叉樹。在一行中輸出preorder 以及該樹的先序遍歷結果。數字間...