总结:
1.给定一组树,我们可以确定一棵完全二叉搜索树,其中的大小关系按从小到大就和中序遍历一样,最先被遍历到的元素最小。
代码:
#include<iostream>
#include<vector>
#include<queue>
#include<algorithm>
using namespace std;
vector<int> input, ad;
queue<int > tan1;
int i = 0;
int n;
void dps(int index)
{
if (0 <= index&&index <= n - 1)
{
dps(index * 2 + 1);
tan1.push(index);
dps(index*2+2);
}
}
int main()
{
cin >> n;
input.resize(n);
ad.resize(n);
for (int i = 0; i < n; i++)
cin >> input[i];
dps(0);
sort(input.begin(),input.end());
for (int i = 0; i < n; i++)
{
ad[tan1.front()] = input[i];
tan1.pop();
}
for (int i = 0; i < n; i++)
{
cout << ad[i];
if (i != n - 1)cout << " ";
}
return 0;
}