From ab1c6de86f948a9d539a824ef5cda5fa4e0eb320 Mon Sep 17 00:00:00 2001 From: mr314ot Date: Mon, 17 Nov 2025 10:37:24 +0100 Subject: [PATCH] du6 - 12 --- du6/program.c | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/du6/program.c b/du6/program.c index 7dbc15c..dbdf58b 100644 --- a/du6/program.c +++ b/du6/program.c @@ -44,18 +44,23 @@ Tree* read_tree() { // inak nacitat oboch potomkov node->left = read_tree(); - if (!node->left) { - valid_db = 0; - free(node); - return NULL; + node->right = read_tree(); + + if (!node->left || !node->right) { + valid_db = 0; + destroy_tree(node->left); + destroy_tree(node->right); + free(node); + return NULL; } - node->right = read_tree(); - if (!node->right) { - free(node->left); - valid_db = 0; - free(node); - return NULL; + long cur = ftell(stdin); + if (fgets(buffer, SIZE, stdin)) { + if (strcmp(buffer, "\n") != 0 && buffer[0] != '*') { + valid_db = 0; + } else { + fseek(stdin, cur, SEEK_SET); + } } return node;