Showing posts with label source code of Binary Search Tree (Using Recursion). Show all posts
Showing posts with label source code of Binary Search Tree (Using Recursion). Show all posts

Wednesday, January 31, 2024

Binary Search Tree (Using Recursion) - DSTC using C Language (Source Code Implemented)

BINARY SEARCH TREE (Using Recursion)
Implemented using C Language 

C Language Code:   


BINTREE1.CPP

// DSTC --- BINTREE1.CPP .... using BINTREE1.H
// Binary Trees Using Recursion .... 

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include "bintree1.h"

int main()
{
    node *nd=NULL;
    node *temp;
    int n=0;
    clrscr();

    while(n>=0)
    {
        printf("\n Enter Value:");
        scanf("%d", &n);
        if (n>=0)
            nd = nodeadd(nd,n);
    }

    printf("\n PreOrder :\n");
    temp=nd ;

    nodeprintPreOrder(temp);

printf("\n InOrder :\n");
    temp=nd ;
    nodeprintInOrder(temp);
    printf("\n PostOrder :\n");
    temp=nd ;
    nodeprintPostOrder(temp);

    killnode(nd) ;
}

 


BINTREE1.H

// DSTC --- BINTREE1.H ....
// Binary Trees Using Recursion .... 

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>

typedef struct nodetype
{
    int info ;
    struct nodetype *left ;
    struct nodetype *right ;
}node;

node *nodeadd(node *nd,int n)
{
    if (nd == NULL)
    {
        nd = (node *)malloc(sizeof(node));
        nd->left = NULL;
        nd->right = NULL;
        nd->info = n ;
    }
    else if (n< nd->info)
        nd->left = nodeadd(nd->left,n) ;
    else
        nd->right = nodeadd(nd->right,n);

    return nd;
}

void killnode(node *nd)
{
    if (nd)
    {
        killnode(nd->left);
        killnode(nd->right);
        free(nd);
    }
}

 

void nodeprintPreOrder(const node *nd)
{
    if (nd)
    {
        // printing of Binary Tree in PreOrder Traversal
        printf("%d, ",nd->info);
        nodeprintPreOrder(nd->left);
        nodeprintPreOrder(nd->right);
    }
}

void nodeprintInOrder(const node *nd)
{
    if (nd)
    {
        // printing of Binary Tree in INORDER Traversal
        nodeprintInOrder(nd->left);
        printf("%d, ",nd->info);
        nodeprintInOrder(nd->right);
    }
}

void nodeprintPostOrder(const node *nd)
{
    if (nd)
    {
        // printing of Binary Tree in PostORDER Traversal
        nodeprintPostOrder(nd->left);
        nodeprintPostOrder(nd->right);
        printf("%d, ",nd->info);
    }
}