diff --git a/cv8/program.c b/cv8/program.c new file mode 100644 index 0000000..8a25fe7 --- /dev/null +++ b/cv8/program.c @@ -0,0 +1,115 @@ +#include +#include +#include +#include + +struct tree { + char value[20]; + struct tree* left; + struct tree* right; +}; + +/*struct tree* create_node(char* string){ + struct tree* node = calloc(1, sizeof(struct tree)); + node->left = NULL; + node->right = NULL; + strcpy(node->value, string); + return node; + +}*/ + +struct tree* read_tree(){ + char buffer[20]; + memset(buffer,0,20); + char* r = fgets(buffer,20,stdin); + int x = strlen(buffer); + buffer[x-1]='\0'; + if(buffer[0] == '\0'){ + exit(0); + } + assert(r); + struct tree* node = calloc(1,sizeof(struct tree)); + memcpy(node->value, buffer, 20); + /*if(node == NULL){ + return create_node(); + }*/ + if(buffer[0] != '*'){ + node->left = read_tree(); + node->right = read_tree(); + } + /*else if(string[0] == '*'){ + if(node->left == NULL){ + strcpy(node->value, string); + } + else if(node->right == NULL){ + strcpy(node->value, string); + } + }*/ + //if(node->left != NULL && node->right != NULL){ + return node; + //} +} + +void print_tree(struct tree* node, int offset){ + int i; + for (i = 0; i < offset; i++){ + printf(" "); + } + printf("%s",node->value); + if (node->left){ + print_tree(node->left,offset + 3); + print_tree(node->right,offset + 3); + } +} + +struct tree* search(struct tree* this, char answer){ + if(this != NULL){ + if(answer == 'a'){ + this->left = search(this, answer); + } + else if(answer == 'n'){ + this->right = search(this, answer); + } + + } + else{ + exit(0); + } + +} + +void destroy_tree(struct tree* root){ + if(root == NULL) return; + + destroy_tree(root->left); + destroy_tree(root->right); + free(root); + root = NULL; +} +int count_l(struct tree* node){ + if(node == NULL){ + return 0; + } + if(node->left == NULL && node->right == NULL){ + return 1; + } + else{ + return count_l(node->left); + return count_l(node->right); + } +} + + +int main(){ + printf("Expert z bufetu to vie\n"); + printf("Pozna 2 druhov ovocia a zeleniny\n"); + printf("Odpovedajte 'a' pre prvu moznost alebo 'n' pre druhu moznost.\n"); + struct tree* tree = NULL; + + tree = read_tree(); + //print_tree(tree, 3); + //display(tree); + destroy_tree(tree); + return 0; +} +