#define _CRT_SECURE_NO_WARNINGS
#include <cstdio>
#include <cstdlib>
void preorder(int arr[], int n, int result[], int index);
int cmp(const void *v1, const void *v2);
int main(void) {
int n, i;
scanf("%d", &n);
int *arr = new int[n];
int *result = new int[n];
for (i = 0; i < n; i++) {
scanf("%d", arr + i);
}
qsort(arr, n, sizeof(int), cmp);
preorder(arr, n, result, 0);
printf("%d", result[0]);
for (i = 1; i < n; i++) {
printf(" %d", result[i]);
}
putchar('\n');
delete[] arr;
delete[] result;
return 0;
}
void preorder(int arr[], int n, int result[], int index) {
static int cnt = 0;
int left = index * 2 + 1, right = index * 2 + 2;
if (index >= n) {
return;
}
else {
preorder(arr, n, result, left);
result[index] = arr[cnt++];
preorder(arr, n, result, right);
}
return;
}
int cmp(const void *v1, const void *v2) {
return *((int *)v1) - *((int *)v2);
}
1064. Complete Binary Search Tree (30)解题报告
最新推荐文章于 2021-02-16 03:26:06 发布