diff --git a/du5/program.c b/du5/program.c index 8e0597b..4a0f49e 100644 --- a/du5/program.c +++ b/du5/program.c @@ -26,11 +26,9 @@ struct Node* read_tree(void) { struct Node* node = calloc(1, sizeof(struct Node)); if (node == NULL) return NULL; strcpy(node->value, buffer); - if (buffer[0] != '*') { node->left = read_tree(); node->right = read_tree(); - if (node->left == NULL || node->right == NULL) { destroy_tree(node); return NULL; @@ -48,15 +46,16 @@ int count_leaves(const struct Node* node) { void run_system(struct Node* node) { if (node == NULL) return; printf("%s", node->value); - if (node->left == NULL && node->right == NULL) { printf("Koniec vstupu\n"); return; } char answer[SIZE]; - if (fgets(answer, SIZE, stdin) == NULL) return; + if (fgets(answer, SIZE, stdin) == NULL) { + printf("Koniec vstupu\n"); + return; + } answer[strcspn(answer, "\r\n")] = '\0'; - if (strcmp(answer, "a") == 0) { run_system(node->left); } else if (strcmp(answer, "n") == 0) { @@ -74,15 +73,12 @@ int main(void) { } char sep[SIZE]; fgets(sep, SIZE, stdin); - int leaves = count_leaves(root); printf("Expert z bufetu to vie.\n"); printf("Pozna %d druhov ovocia a zeleniny.\n", leaves); printf("Odpovedajte 'a' pre prvu moznost alebo 'n' pre druhu moznost.\n"); - printf("Je to ovocie alebo zelenina.\n"); run_system(root); - destroy_tree(root); return 0; } \ No newline at end of file