BST (Binary Search Tree) : Non-recursive Implementation Using C
#include<stdio.h>
struct node
{
int data;
struct node *left;
struct node *right;
};
struct node *binary_tree(struct node *head, int val)
{
struct node *temp,*newhead;
newhead=(struct node *)malloc(sizeof(struct node));
newhead->data=val;
newhead->left=NULL;
newhead->right=NULL;
temp=head;
if(temp==NULL)
{
return newhead;
}
while(1)
{
if(val<=temp->data)
{
if(temp->left==NULL)
{
temp->left=newhead;
break;
}
else temp=temp->left;
}
else
{
if(temp->right==NULL)
{
temp->right=newhead;
break;
}
else temp=temp->right;
}
}
return head;
};
inorder(struct node *head)
{
if(head!=NULL)
{
inorder(head->left);
printf("%d ",head->data);
inorder(head->right);
}
}
int main()
{
int n,i;
struct node *root=NULL;
for(i=1;i<=5;i++)
{
printf("Enter a value : ");
scanf("%d",&n);
root=binary_tree(root,n);
}
inorder(root);
return 0;
}
0 Comments