本題要求根據給定的一棵二叉樹的後序遍歷和中序遍歷結果,輸出該樹的先序遍歷結果。
第一行給出正整數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 以及該樹的先序遍歷結果。數字間...