Aktualizovat a2/program.c

This commit is contained in:
Mykola Syniavskyi 2025-12-01 15:25:57 +00:00
parent 08c91eaa18
commit d262429c07

View File

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