usaa25/a2/program.c

42 lines
845 B
C

#include <stdio.h>
#include <stdlib.h>
void preorder(int *a, int b, int i, int level) {
if (i >=b) return;
for (int j = 0; j<level; j++) // вирізали прогалини за рівнем
printf(" ");
printf("%d\n",a[i]);
preorder(a, b, 2*i+1, level+1); // left
preorder(a, b, 2*i+2, level+1); // right
}
int main() {
int a[1000];
int b=0;
while (scanf("%d", &a[b]) == 1) {
b++;
}
for (int i = 0; i<b; i++) { // перевірка min-heap
int l =2*i+1;
int r =2*i+2;
if (l<b && a[l]<a[i]) {
printf("Nie je kopa.\n");
return 0;
}
if (r<b && a[r]<a[i]) {
printf("Nie je kopa.\n");
return 0;
}
}
printf("Je to taka kopa:\n");
preorder(a, b, 0, 0);
return 0;
}