C Program to Create a Binary Tree Using Recursion [Linked Representation]

C Program to Create a Binary Tree Using Recursion [Linked Representation]
What is Binary Tree?
A tree is said to be a binary tree if each node of the tree can have maximum of two children. Children of a node of binary tree are ordered. One child is called “left” child and the other is called “right” child. An example of binary tree is shown in below diagram.

C Program to Create a Binary Tree Using Recursion [Linked Representation]

Creation of Binary Tree Using Recursion
A binary tree can be created recursively. The program will work as follow:
1. Read a data in x.

2. Allocate memory for a new node and store the address in pointer p.

3. Store the data x in the node p.

4. Recursively create the left subtree of p and make it the left child of p.

5. Recursively create the right subtree of p and make it the right child of p.

The program is written in C language which allows linked representation of binary tree. Code will be as follow:

#include<stdio.h>

typedef struct node

{

    int data;

    struct node *left;

    struct node *right;

}node;

node *create()

{

    node *p;

    int x;

    printf(“Enter data(-1 for no data):”);

    scanf(“%d”,&x);

    if(x==-1)

        return NULL;

    p=(node*)malloc(sizeof(node));

    p->data=x;

    printf(“Enter left child of %d:n”,x);

    p->left=create();

    printf(“Enter right child of %d:n”,x);

    p->right=create();

    return p;

}

void preorder(node *t)              //address of root node is passed in t

{

    if(t!=NULL)

    {

        printf(“n%d”,t->data);     //visit the root

        preorder(t->left);          //preorder traversal on left subtree

        preorder(t->right);         //preorder traversal om right subtree

    }

}

int main()

{

    node *root;

    root=create();

    printf(“nThe preorder traversal of tree is:n”);

    preorder(root);

    return 0;

}

In the above program I have used preorder traversal to just show that the tree is created properly or not. You can use any other traversal method here.

Subscribe To Get Latest Tutorials Directly In Your Inbox!
Enter Your Email Address Below:

HAND

Leave a Reply

Your email address will not be published. Required fields are marked *