1099. Build A Binary Search Tree 解析

来源:互联网 发布:蜂鸟软件科技有限公司 编辑:程序博客网 时间:2024/06/13 08:00

直接中序往里面填就好了。。。。

#include <iostream>#include <vector>#include <algorithm>#include <queue>#define MAX 110#define null -1using namespace std;int n;struct Node {int data;int left;int right;};Node t[MAX];vector <int> a;int pos = 0;vector <int> ans;void InOrder(int root) {if (root != null) {InOrder(t[root].left);t[root].data = a[pos++];InOrder(t[root].right);}}void LevelOrder(int root) {if (root != null) {queue <int> q;q.push(root);while (!q.empty()) {int top = q.front();q.pop();ans.push_back(t[top].data);if (t[top].left != null) {q.push(t[top].left);}if (t[top].right != null) {q.push(t[top].right);}}}}int main() {cin >> n;for (int i = 0; i < n; i++) {t[i].data = i;cin >> t[i].left >> t[i].right;}a.resize(n);for (int i = 0; i < n; i++) {cin >> a[i];}sort(a.begin(), a.end());InOrder(0);LevelOrder(0);cout << ans[0];for (int i = 1; i < n; i++) {cout << " " << ans[i];}return 0;}


0 0
原创粉丝点击