Add a4/program.c
This commit is contained in:
parent
b37dd73112
commit
b1c6da09fc
61
a4/program.c
Normal file
61
a4/program.c
Normal file
@ -0,0 +1,61 @@
|
|||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
|
int main() {
|
||||||
|
int arr[100]; // Array to store the input numbers
|
||||||
|
int n = 0; // To keep track of how many numbers we have
|
||||||
|
|
||||||
|
// Input the numbers
|
||||||
|
while (scanf("%d", &arr[n]) == 1) {
|
||||||
|
n++;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Check if the array is a min-heap
|
||||||
|
int isHeap = 1; // Flag to indicate whether it's a min-heap
|
||||||
|
|
||||||
|
for (int i = 0; i < n; i++) {
|
||||||
|
int left = 2 * i + 1;
|
||||||
|
int right = 2 * i + 2;
|
||||||
|
|
||||||
|
// Check if left child exists and if it is smaller than the parent
|
||||||
|
if (left < n && arr[i] > arr[left]) {
|
||||||
|
isHeap = 0; // Not a min-heap
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Check if right child exists and if it is smaller than the parent
|
||||||
|
if (right < n && arr[i] > arr[right]) {
|
||||||
|
isHeap = 0; // Not a min-heap
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (isHeap == 0) {
|
||||||
|
printf("Nie je kopa.\n"); // If it's not a min-heap, print this
|
||||||
|
return 0; // End the program
|
||||||
|
}
|
||||||
|
|
||||||
|
// If it's a min-heap, print the binary tree in preorder
|
||||||
|
printf("Je to taka kopa:\n");
|
||||||
|
|
||||||
|
// Function to print tree in preorder
|
||||||
|
void printPreorder(int i, int level) {
|
||||||
|
if (i >= n) {
|
||||||
|
return; // Stop if index is out of bounds
|
||||||
|
}
|
||||||
|
|
||||||
|
// Print the current node with spaces for the level
|
||||||
|
for (int j = 0; j < level; j++) {
|
||||||
|
printf(" ");
|
||||||
|
}
|
||||||
|
printf("%d\n", arr[i]);
|
||||||
|
|
||||||
|
// Recursively print left and right children
|
||||||
|
printPreorder(2 * i + 1, level + 1); // Left child
|
||||||
|
printPreorder(2 * i + 2, level + 1); // Right child
|
||||||
|
}
|
||||||
|
|
||||||
|
// Start with the root node
|
||||||
|
printPreorder(0, 0);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user