欸嘿

程序员诶嘿害怕拍照  •  20天前


include <bits/stdc++.h>

using namespace std;

typedef struct node {

int date;
node *lchild, *rchild;

} tree, *treelink;;

int n;

void create_tree(treelink &t, int pre[], int in[], int m) {

if (m == 0) {
	t = NULL;
	return;
}
int root = pre[0];
int index = 0;
for (int i = 0; i < m; i++) {
	if (root == in[i]) {
		index = i;
		break;
	}
}
t = new tree;
t->date = root;
create_tree(t->lchild, pre + 1, in, index);
create_tree(t->rchild, pre + 1 + index, in + 1 + index, m - index - 1);

}

void last(treelink t) {

if (t != NULL) {
	last(t->lchild);
	last(t->rchild);
	cout << t->date << " ";
}

}

int main() {

int n;
cin >> n;
treelink t;
int pre[200], in[200];
for (int i = 0; i < n; i++)
	cin >> pre[i];
for (int i = 0; i < n; i++)
	cin >> in[i];
create_tree(t, pre, in, n);
last(t);
return 0;

}


评论:

请先登录,才能进行评论