Professional Documents
Culture Documents
Aim:
Aim: Binary Search Tree, Insertion, and Deletion in BST
Theory: A binary search tree (BST) is a binary tree where each node has a Comparable key (and an
associated value) and satisfies the restriction that the key in any node is larger than the keys in all nodes in
that node's left subtree and smaller than the keys in all nodes in that node's right subtree..
Algorithm
Create a new BST node and assign values to it.
insert(node, key)
Source Code:
BinarySearch.c
#include<stdio.h>
#include<malloc.h>
struct nodetype{
int info;
void btreeins(int);
void btsrchn(int);
void delcaseB();
void btreedel(int);
void main(){
//root = NULL;
while(1){
scanf("%d", &ch);
switch(ch){
case 1:
while(n!=-1){
scanf("%d", &n);
if(n!=-1){
btreeins(n);
n=0;
break;
case 2:
ID: PREERN210017705
Page No:
display(root,0);
break;
case 3:
break;
case 4:
scanf("%d", &x);
btsrch(root,x);
break;
case 5:
inorder(root);
break;
case 6:
postorder(root);
break;
case 7:
preorder(root);
break;
case 8:
scanf("%d", &dn);
btreedel(dn);
display(root,1);
break;
case 9:
exit(0);
int found = 0;
p = root;
parent = p;
if(x == p->info){
found = 1;
else if(x<p->info){
p=p->lchild;
else{
p = p->rchild;
if(!found){
p->info=x;
p->lchild = NULL;
p->rchild=NULL;
if(root!=NULL){
if(x<parent->info){
else{
ID: PREERN210017705
Page No:
}
else{
root = p;
p=p->lchild;
else{
p=p->rchild;
if(p=NULL){
printf("Search unsucessful");
else{
if(btreeh){
height(btreeh->lchild, level+1);
height(btreeh->rchild, level+1);
if(level>m){
m = level;
return (m-1);
if(bt){
inorder(bt->lchild);
inorder(bt->rchild);
if(bt){
printf(" %d ",bt->info);
preorder(bt->lchild);
preorder(bt->rchild);
if(bt){
postorder(bt->lchild);
postorder(bt->rchild);
btsrchn(x);
if(dnode == NULL){
printf("not found");
return;
ID: PREERN210017705
Page No:
delcaseB();
else{
delcaseA(dnode,pardnode);
free(dnode);
dnode = root;
pardnode = dnode;
if(dnode->info>x){
dnode = dnode->lchild;
else{
dnode = dnode->rchild;
child = NULL;
else if((dnode->lchild)!=NULL){
child = dnode->lchild;
else{
child = dnode->rchild;
if(pardnode != NULL){
pardnode->lchild = child;
else{
else{
root = child;
void delcaseB(){
p = dnode->rchild;
q=dnode;
while((p->lchild)!=NULL){
q=p;
p=p->lchild;
succ = p;
parsucc = q;
delcaseA(succ,parsucc);
if(pardnode!=NULL){
else{
else{
root = succ;
ID: PREERN210017705
Page No:
}
int i=1;
if(ptr){
display(ptr->rchild,t+1);
printf(" ");
printf("%d<", ptr->info);
display(ptr->lchild, t+1);
Test Case - 1
User Output
1.Create tree / Insertion 1
2.Display tree 1
3.Height of tree 1
4.Search the desired value 1
5.Inorder traversing of tree is 1
6.Postorder traversing of tree is 1
7.Preorder traversing of tree is 1
8.Deletion 1
9.Exit 1
Enter choice for tree operation: 1
Enter node type(-1) to terminate: 2
Enter node type(-1) to terminate: 6
Enter node type(-1) to terminate: 9
Enter node type(-1) to terminate: 13
Enter node type(-1) to terminate: -1
1.Create tree / Insertion 2
2.Display tree 2
3.Height of tree 2
4.Search the desired value 2
5.Inorder traversing of tree is 2
6.Postorder traversing of tree is 2
7.Preorder traversing of tree is 2
ITS Engineering College 2021-2025-CSE_3_D1
8.Deletion 2
9.Exit 2
Enter choice for tree operation: 2
13< 9< 6< 2<1.Create tree / Insertion 3
2.Display tree 3
3.Height of tree 3
4.Search the desired value 3
5.Inorder traversing of tree is 3
6.Postorder traversing of tree is 3
7.Preorder traversing of tree is 3
8.Deletion 3
9.Exit 3
Enter choice for tree operation: 3
Height is 3 as follows1.Create tree / Insertion 4
ID: PREERN210017705
Page No:
Test Case - 1
2.Display tree 4
3.Height of tree 4
4.Search the desired value 4
5.Inorder traversing of tree is 4
6.Postorder traversing of tree is 4
7.Preorder traversing of tree is 4
8.Deletion 4
9.Exit 4
Enter choice for tree operation: 4
Enter node to be search: 13
Search successful at node address 13 1.Create tree / Insertion 5
2.Display tree 5
3.Height of tree 5
4.Search the desired value 5
5.Inorder traversing of tree is 5
6.Postorder traversing of tree is 5
7.Preorder traversing of tree is 5
8.Deletion 5
9.Exit 5
Enter choice for tree operation: 5
2 6 9 13 1.Create tree / Insertion 6
2.Display tree 6
3.Height of tree 6
4.Search the desired value 6
5.Inorder traversing of tree is 6
6.Postorder traversing of tree is 6
7.Preorder traversing of tree is 6
8.Deletion 6
9.Exit 6
Enter choice for tree operation: 6
13 9 6 2 1.Create tree / Insertion 7
2.Display tree 7
3.Height of tree 7
4.Search the desired value 7
5.Inorder traversing of tree is 7
6.Postorder traversing of tree is 7
7.Preorder traversing of tree is 7
8.Deletion 7
9.Exit 7
Enter choice for tree operation: 7
2 6 9 13 1.Create tree / Insertion 8
2.Display tree 8
3.Height of tree 8
4.Search the desired value 8
5.Inorder traversing of tree is 8
6.Postorder traversing of tree is 8
ITS Engineering College 2021-2025-CSE_3_D1
ID: PREERN210017705
Page No: