/* C program to implement binary search tree and display all node without using recursion */
#include <stdio.h>
#include <conio.h>
#include <malloc.h>
struct node
{
int data;
struct node *lc,*rc;
};
typedef struct node NODE;
int top=-1,stack[20];
void create(NODE **,int);
void inorder(NODE *);
void main()
{
NODE *root=NULL;
int data;
char ch;
clrscr();
printf("Enter the root element:- ");
scanf("%d",&data);
create(&root,data);
while(1)
{
printf("\n MENU \n");
printf("\n1.Insert.");
printf("\n2.Display.");
printf("\n3.Exit\n");
printf("\nEnter your choice:- ");
fflush(stdin);
scanf("%c",&ch);
switch(ch)
{
case '1':
printf("\nEnter the data :- ");
scanf("%d",&data);
create(&root,data);
break;
case '2':
printf("\nIn-order Traversal:\n");
inorder(root);
break;
case '3':
exit(1);
default:
printf("\nYou have entered a wrong choice.");
}
}
}
/* Creating Binary Search Tree */
void create(NODE **root,int d)
{
if(*root==NULL)
{
*root=(NODE *)malloc(sizeof(NODE));
(*root)->data=d;
(*root)->lc=NULL;
(*root)->rc=NULL;
return;
}
else
{
if( d < (*root)->data )
create(&((*root)->lc),d);
if( d > (*root)->data )
create(&((*root)->rc),d);
if( d == (*root)->data )
printf("\nData already exist.");
}
}
/* Displaying all elements of binary search tree using stack */
void inorder(NODE *root)
{
NODE *ptr;
(ptr)=(root);
while(top!=-1||(ptr)!=NULL)
{
if((ptr)!=NULL)
{
stack[++top]=(ptr);
(ptr)=(ptr)->lc;
}
else
{
(ptr)=stack[top--];
printf("%d\t",(ptr)->data);
(ptr)=(ptr)->rc;
}
}
}
/* Output of Binary Search Tree without using recursion Program */
For more related to Data Structure see List of Data Structure Programs. If you like this program, Please share and comment to improve this blog.
#include <stdio.h>
#include <conio.h>
#include <malloc.h>
struct node
{
int data;
struct node *lc,*rc;
};
typedef struct node NODE;
int top=-1,stack[20];
void create(NODE **,int);
void inorder(NODE *);
void main()
{
NODE *root=NULL;
int data;
char ch;
clrscr();
printf("Enter the root element:- ");
scanf("%d",&data);
create(&root,data);
while(1)
{
printf("\n MENU \n");
printf("\n1.Insert.");
printf("\n2.Display.");
printf("\n3.Exit\n");
printf("\nEnter your choice:- ");
fflush(stdin);
scanf("%c",&ch);
switch(ch)
{
case '1':
printf("\nEnter the data :- ");
scanf("%d",&data);
create(&root,data);
break;
case '2':
printf("\nIn-order Traversal:\n");
inorder(root);
break;
case '3':
exit(1);
default:
printf("\nYou have entered a wrong choice.");
}
}
}
/* Creating Binary Search Tree */
void create(NODE **root,int d)
{
if(*root==NULL)
{
*root=(NODE *)malloc(sizeof(NODE));
(*root)->data=d;
(*root)->lc=NULL;
(*root)->rc=NULL;
return;
}
else
{
if( d < (*root)->data )
create(&((*root)->lc),d);
if( d > (*root)->data )
create(&((*root)->rc),d);
if( d == (*root)->data )
printf("\nData already exist.");
}
}
/* Displaying all elements of binary search tree using stack */
void inorder(NODE *root)
{
NODE *ptr;
(ptr)=(root);
while(top!=-1||(ptr)!=NULL)
{
if((ptr)!=NULL)
{
stack[++top]=(ptr);
(ptr)=(ptr)->lc;
}
else
{
(ptr)=stack[top--];
printf("%d\t",(ptr)->data);
(ptr)=(ptr)->rc;
}
}
}
/* Output of Binary Search Tree without using recursion Program */
Output of BST without using recursion |
Output of BST without using recursion |
For more related to Data Structure see List of Data Structure Programs. If you like this program, Please share and comment to improve this blog.
Title is missleading! you used recursion while create binary search tree
ReplyDeletesir you used recursion. please submit without recursion.
ReplyDeleteYou used recursion and give a title without recursion !!
ReplyDelete