diff --git a/a2/program.c b/a2/program.c new file mode 100644 index 0000000..0703f6c --- /dev/null +++ b/a2/program.c @@ -0,0 +1,41 @@ +#include +#include + +void preorder(int *a, int n, int i, int level) { + if (i >= n) return; + + for (int j = 0; j < level; j++) // вирізали прогалини за рівнем + printf(" "); + + printf("%d\n", a[i]); + + preorder(a, n, 2 * i + 1, level + 1); // left + preorder(a, n, 2 * i + 2, level + 1); // right +} + +int main() { + int a[1000]; + int n = 0; + + while (scanf("%d", &a[n]) == 1) { + n++; + } + + for (int i = 0; i < n; i++) { // перевірка min-heap + int l = 2 * i + 1; + int r = 2 * i + 2; + + if (l < n && a[l] < a[i]) { + printf("Nie je kopa.\n"); + return 0; + } + if (r < n && a[r] < a[i]) { + printf("Nie je kopa.\n"); + return 0; + } + } + printf("Je to taka kopa:\n"); + preorder(a, n, 0, 0); + + return 0; +} \ No newline at end of file