DATA STRUCTURE

PROGRAM 1 PROGRAM 2 PROGRAM 3 PROGRAM 4 PROGRAM 5 PROGRAM 6 PROGRAM 7 PROGRAM 8 PROGRAM 9 PROGRAM 10 PROGRAM 11 PROGRAM 12 . . .

Binary tree traversals

 
 

//Binary tree traversal:
 
#include < stdio.h >
#include < conio.h >
#include < malloc.h >
struct node
{
    struct node *left;
    int data;
    struct node *right;
};
 
void main()
{
    void insert(struct node **,int);
    void inorder(struct node *);
    void postorder(struct node *);
    void preorder(struct node *);
 
    struct node *ptr;
    int no,i,num;
 
    ptr = NULL;
    ptr->data=NULL;
    clrscr();
 
    printf("\nProgram for Tree Traversal\n");
    printf("Enter the number of nodes to add to the tree.\n");
    scanf("%d",&no);
 
    for(i=0;i< no;i++)
    {
        printf("Enter the item\n");
        scanf("%d",&num);
        insert(&ptr,num);
    }
 
    //getch();
    printf("\nINORDER TRAVERSAL\n");
    inorder(ptr);
 
    printf("\nPREORDER TRAVERSAL\n");
    preorder(ptr);
 
    printf("\nPOSTORDER TRAVERSAL\n");
    postorder(ptr);
 
    getch();
}
 
void insert(struct node **p,int num)
{
    if((*p)==NULL)
    {
        printf("Leaf node created.");
        (*p)=malloc(sizeof(struct node));
        (*p)->left = NULL;
        (*p)->right = NULL;
        (*p)->data = num;
        return;
    }
    else
    {
        if(num==(*p)->data)
        {
            printf("\nREPEATED ENTRY ERROR VALUE REJECTED\n");
            return;
        }
        if(num<(*p)->data)
        {
            printf("\nDirected to left link.\n");
            insert(&((*p)->left),num);
        }
        else
        {
            printf("Directed to right link.\n");
            insert(&((*p)->right),num);
        }
    }
    return;
}
 
void inorder(struct node *p)
{
    if(p!=NULL)
    {
        inorder(p->left);
        printf("\nData :%d",p->data);
        inorder(p->right);
    }
    else
    return;
}
 
void preorder(struct node *p)
{
    if(p!=NULL)
    {
        printf("\nData :%d",p->data);
        preorder(p->left);
        preorder(p->right);
    }
    else
    return;
}
 
void postorder(struct node *p)
{
    if(p!=NULL)
    {
        postorder(p->left);
        postorder(p->right);
        printf("\nData :%d",p->data);
    }
    else
    return;
}