Friday, 17 November 2017

Traversal in Binary search tree using C

#include <stdio.h>
#include <stdlib.h>
typedef struct bst
{
    int data;
    struct abc *left;
    struct abc *right;
}node;
node *tree=NULL;
node *create(node *tree,int val)
{
    node *ptr,*parentptr,*nodeptr;
    ptr=(node *)malloc(sizeof(node));
    ptr->data=val;
    ptr->left=NULL;
    ptr->right=NULL;
    if(tree==NULL)
    {
        tree=ptr;
        tree->left=NULL;
        tree->right=NULL;
    }
    else
    {
        parentptr=NULL;
        nodeptr=tree;
        while(nodeptr!=NULL)
        {
            parentptr=nodeptr;
            if(val<nodeptr->data)
                nodeptr=nodeptr->left;
            else
                nodeptr=nodeptr->right;
        }
        if(val<parentptr->data)
            parentptr->left=ptr;
        else
            parentptr->right=ptr;
    }
    return tree;
}


node *in_order(node *tree)
{
    if(tree!=NULL)
    {
        in_order(tree->left);
        printf("%d ",tree->data);
        in_order(tree->right);
    }
    return tree;
}
node *pre_order(node *tree)
{
    if(tree!=NULL)
    {
        printf("%d ",tree->data);
        pre_order(tree->left);
        pre_order(tree->right);
    }
    return tree;
}
node *post_order(node *tree)
{
    if(tree!=NULL)
    {
        post_order(tree->left);
        post_order(tree->right);
        printf("%d ",tree->data);
    }
    return tree;
}

int main()
{
    int val,opt;
    do
    {
        printf("\nMenu\n1--Insert\n2--In Order\n3--Pre Order\n4--Post Order\nEnter your choice\n");
        scanf("%d",&opt);
        switch(opt)
        {
            case 1:printf("Enter the value to be inserted\t ");
                    scanf("%d",&val);
                    tree=create(tree,val);
                    break;
            case 2:tree=in_order(tree);
                    break;
            case 3:tree=pre_order(tree);
                    break;
            case 4:tree=post_order(tree);
                    break;
        }
    }while(opt!=5);
    return 0;
}

All In One Blog

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation.

0 comments:

Post a Comment

 

Copyright @ 2015