How to create a binary tree in C

1 Answer

0 votes
#include <stdio.h>     
#include <stdlib.h>    

struct Node {
    int n;
    struct Node* left, * right;
};

struct Node* create_node(int n) {
    struct Node* temp = (struct Node*)malloc(sizeof(struct Node));
    if (temp != NULL) {
        temp->n = n;
        temp->left = temp->right = NULL;
    }
    return (temp);
}

void print_tree(struct Node* root) {
    if (root) {
        print_tree(root->left);
        printf("%d ", root->n);
        print_tree(root->right);
    }
}
void free_tree(struct Node* root) {
    if (root == NULL)
        return;

    free_tree(root->left);
    free_tree(root->right);
    free(root);
}

int main()
{
    struct Node* root = create_node(100);

    root->left = create_node(10);
    root->right = create_node(70);
    root->left->left = create_node(80);
    root->left->right = create_node(20);
    root->right->right = create_node(40);
    root->left->left->left = create_node(50);
    root->left->left->right = create_node(30);


    /*
             100
          10     70
       80    20     40
    50    30

    */


    print_tree(root);

    free_tree(root);

    return 0;
}



/*
run:

50 80 30 10 20 100 70 40

*/

 



answered Jun 14, 2023 by avibootz
edited Jun 17, 2023 by avibootz

Related questions

1 answer 162 views
1 answer 165 views
2 answers 238 views
1 answer 167 views
1 answer 178 views
1 answer 111 views
...