完全二叉搜索树回溯法
#include <iostream>
#include <algorithm>
using namespace std;
int A[100], T[100];
int n, cnt;
void solve(int root) {//结点
if (root > n)
return ;
solve(root * 2);
T[root] = A[cnt++];
solve(root * 2 + 1);
}
int main() {
cin >> n;
for (int i = 0; i < n; i++)
cin >> A[i];
sort(A, A + n);
solve(1);
for (int i = 1; i <= n; i++)
cout << T[i] << " ";
return 0;
}

浙公网安备 33010602011771号