BST Data Structure
BST Data Structure
#include<iostream>
#include<conio.h>
int count=0;
class Node
public:
Node* Left;
int Data;
Node* Right;
};
class BST
public:
Node* Root;
BST()
Root = NULL;
if(Root == NULL)
Root = newNode;
else
while(ptr != NULL)
pre = ptr;
if(ptr == NULL)
}
else if(value > ptr -> Data)
pre = ptr;
if(ptr == NULL)
else
delete newNode;
count--;
break;
count++;
{
if(Root == NULL)
else
int found=0;
while(ptr != NULL)
found++;
break;
else
}
if(found == 0)
if(Root == NULL)
else
int found=0;
while(ptr != NULL)
found++;
break;
else
if(found == 0)
void CountNodes()
}
void InOrder(Node* ptr)
if(ptr != NULL)
if(ptr != NULL)
if(ptr != NULL)
{
PostOrder(ptr -> Left);
return ptr;
if(ptr == NULL)
return ptr;
}
else if(key > ptr -> Data)
else
delete ptr;
count--;
return temp;
delete ptr;
count--;
return temp;
return ptr;
}
};
main()
BST Tree;
while(1)
system("cls");
int choice,value;
switch(choice)
case 1:
Tree.Insert(value);
break;
case 2:
Tree.Search(value);
break;
case 3:
Tree.Update(value);
break;
case 4:
Tree.CountNodes();
break;
case 5:
Tree.InOrder(Tree.Root);
break;
case 6:
Tree.PreOrder(Tree.Root);
break;
case 7:
cout << "\n\nPost Order Traversal -> ";
Tree.PostOrder(Tree.Root);
break;
case 8:
break;
case 9:
exit(0);
default:
getch();