Develop a ‘C’ program to create a BINARY TREE. Write functions to perform the various traversals on the tree.

 

DATA STRUCTURE & ALGORITHM USING C – LAB (2018407)

UNIT – 08

Develop a ‘C’ program to create a BINARY TREE. Write functions to perform the various traversals on the tree.

 

Program:
#include <stdio.h>
#include <stdlib.h>
/* A binary tree node has data, pointer to left child
and a pointer to right child */
struct node {
            int data;
            struct node* left;
            struct node* right;
};
struct node* newNode(int data)
{
            struct node* node
                        = (struct node*)malloc(sizeof(struct node));
            node->data = data;
            node->left = NULL;
            node->right = NULL;
            return (node);
}
void printPostorder(struct node* node)
{
            if (node == NULL)
                        return;
            // first recur on left subtree
            printPostorder(node->left);
            // then recur on right subtree
            printPostorder(node->right);
            // now deal with the node
            printf("%d ", node->data);
}
void printInorder(struct node* node)
{
            if (node == NULL)
                        return;
            printInorder(node->left);
            printf("%d ", node->data);
            printInorder(node->right);
}
void printPreorder(struct node* node)
{
            if (node == NULL)
                        return;
            printf("%d ", node->data);
            printPreorder(node->left);
            printPreorder(node->right);
}
int main()
{
            struct node* root = newNode(1);
            root->left = newNode(2);
            root->right = newNode(3);
            root->left->left = newNode(4);
            root->left->right = newNode(5);
            printf("\nPreorder traversal of binary tree is \n");
            printPreorder(root);
            printf("\nInorder traversal of binary tree is \n");
            printInorder(root);
            printf("\nPostorder traversal of binary tree is \n");
            printPostorder(root);
            getchar();
            return 0;
}
 
Output
 
Preorder traversal of binary tree is
1 2 4 5 3
Inorder traversal of binary tree is
4 2 5 1 3
Postorder traversal of binary tree is
4 5 2 3 1

 

Post a Comment

0 Comments