1
#include <iostream>
2
#include <vector>
3
#include <algorithm>
4
#include <queue>
5
#include <stack>
6
#include <
string
>
7
#include <fstream>
8
#include <map>
9
using
namespace
std;
10
11
struct
node {
12
int
data;
13
struct
node *left, *
right;
14
node() : data(
0
), left(NULL), right(NULL) { }
15
node(
int
d) : data(d), left(NULL), right(NULL) { }
16
};
17
18
void
prints(node *
root) {
19
if
(!root)
return
;
20
prints(root->
left);
21
cout << root->data <<
"
"
;
22
prints(root->
right);
23
}
24
25
node *_buildtree(
int
pre[],
int
post[],
int
&preindex,
int
l,
int
h,
int
size) {
26
if
(preindex >= size || l > h)
return
NULL;
27
node *root =
new
node(pre[preindex++
]);
28
if
(l == h)
return
root;
29
int
i =
l;
30
for
(; i <= h; i++)
if
(pre[preindex] == post[i])
break
;
31
if
(i <=
h) {
32
root->left =
_buildtree(pre, post, preindex, l, i, size);
33
root->right = _buildtree(pre, post, preindex, i+
1
, h, size);
34
}
35
return
root;
36
}
37
38
node *buildtree(
int
pre[],
int
post[],
int
size) {
39
int
preindex =
0
;
40
return
_buildtree(pre, post, preindex,
0
, size-
1
, size);
41
}
42
43
int
main() {
44
int
pre[
9
] = {
1
,
2
,
4
,
8
,
9
,
5
,
3
,
6
,
7
};
45
int
post[
9
] = {
8
,
9
,
4
,
5
,
2
,
6
,
7
,
3
,
1
};
46
node *root = buildtree(pre, post,
9
);
47
prints(root);
48
return
0
;
49
}
?
Data Structure Binary Tree: Construct Full Binary Tree from given preorder and postorder traversals
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061
微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元

