test
This commit is contained in:
parent
2f4cdb9d7c
commit
c11006e42b
@ -37,6 +37,19 @@ Node* readTree() {
|
||||
return x; // vrátime uzol
|
||||
}
|
||||
|
||||
int valid(Node *x) {
|
||||
if (!x) return 0;
|
||||
|
||||
if (x->leaf) {
|
||||
return x->a == NULL && x->n == NULL;
|
||||
}
|
||||
|
||||
if (!x->a || !x->n) return 0;
|
||||
|
||||
return valid(x->a) && valid(x->n);
|
||||
}
|
||||
|
||||
|
||||
// funkcia na spočítanie listov v strome
|
||||
int count(Node *x) {
|
||||
if (!x) return 0; // prázdny uzol = 0
|
||||
@ -85,11 +98,17 @@ int main() {
|
||||
Node *root = readTree(); // načítame strom zo vstupu
|
||||
printf("Expert z bufetu to vie.\n"); // vždy vypíšeme tento riadok
|
||||
|
||||
if (!root) { // ak strom je prázdny alebo chybne načítaný
|
||||
if (!root || !valid(root)) {
|
||||
printf("Chybna databaza\n");
|
||||
freeTree(root);
|
||||
return 0;
|
||||
}
|
||||
fgets(s, MAX, stdin); // prečítame prázdny riadok medzi databázou a vstupom používateľa
|
||||
}
|
||||
if (!fgets(s, MAX, stdin) || s[0] != '\n') {
|
||||
printf("Chybna databaza\n");
|
||||
freeTree(root);
|
||||
return 0;
|
||||
}
|
||||
// prečítame prázdny riadok medzi databázou a vstupom používateľa
|
||||
|
||||
int k = count(root); // spočítame počet listov (druhov tovaru)
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user