樹的遍歷(根據後序和中序遍歷重構樹)(c )

2021-10-21 10:27:01 字數 908 閱讀 9568

樹的遍歷

題目描述:給定一棵二叉樹的後序遍歷和中序遍歷,請你輸出其層序遍歷的序列。這裡假設鍵值都是互不相等的正整數。

**如下:

#include

using

namespace std;

#define sf scanf

#define pf printf

#define ll long long

#define endl '\n'

#define pb push_back

#define sz size

#define inf 0x3f3f3f3f

const

int n =40;

int a[n]

, b[n]

;struct node

;queue> que;

vector<

int> ans;

void

slove

(node*

&root,

int l1,

int r1,

int l2,

int r2)

}slove

(root-

>lc, l1, l1 + pos - l2 -

1, l2, pos -1)

;slove

(root-

>rc, r1 - r2 + pos, r1 -

1, pos +

1, r2);}

}void

print

(node*

&root)}}

intmain()

else

}return0;

}

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

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

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

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

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

n 是樹中結點的個數。隨後兩行,每行給出 n個整數,分別對應後序遍歷和中序遍歷結果,數字間以空格分隔。題目保證輸入正確對應一棵二叉樹。7 2 3 1 5 7 6 4 1 2 3 4 5 6 7preorder 4 1 3 2 6 5 7 思路 一.根據後序遍歷和中序遍歷建樹 1.二叉鍊錶結構的定義 ...