diff --git a/cv7/program.c b/cv7/program.c index 523b003..b3e0900 100644 --- a/cv7/program.c +++ b/cv7/program.c @@ -1,6 +1,7 @@ #include #include #include +#include #define SIZE 100 @@ -20,25 +21,26 @@ struct tree* read_tree(){ return node; } -struct tstruct tree* load_tree() { - struct tree* tree = read_tree(); - - tree->left = load_tree(); - tree->right = load_tree(); - - if (tree->value[0] == "*"){ - re +struct tree* load_tree() { + struct tree* node = read_tree(); + if (!node) { + return NULL; } + if (node->value[0] != '*') { + node->left = load_tree(); + node->right = load_tree(); + } + return node; } -void print_tree(struct tree* tree,int offset){ +void print_tree(struct tree* tree, int offset){ for (int i = 0; i < offset; i++){ printf(" "); } - printf("%s",tree->question); + printf("%s", tree->value); if (tree->left){ - print_tree(tree->left,offset +3); - print_tree(tree->right,offset +3); + print_tree(tree->left, offset + 3); + print_tree(tree->right, offset + 3); } } @@ -54,18 +56,10 @@ void destroy_tree(struct tree* tree){ void count_items(struct tree* tree, int* count){ if(tree->left == NULL && tree->right == NULL){ - (*count)++ + (*count)++; }else{ count_items(tree->left, count); count_items(tree->right, count); } } -int main() { - printf("Constructing the tree:\n"); - struct tree* root = test(); - printf("The tree structure:\n"); - print_tree(root, 0); - - return 0; -}