BST
BST
h>
#include <stdlib.h>
struct node {
int info;
struct node *llink;
struct node *rlink;
};
if (root == NULL)
return temp;
prev = NULL;
cur = root;
while (cur != NULL) {
prev = cur;
cur = (item <= cur->info) ? cur->llink : cur->rlink;
}
return root;
}
int main() {
int item, ch, key, n;
NODE *root = NULL;
while (1) {
printf("\nEnter your choice:\n");
printf("1. Construct BST\n");
printf("2. Preorder Traversal\n");
printf("3. Inorder Traversal\n");
printf("4. Postorder Traversal\n");
printf("5. Search an Element\n");
printf("6. Exit\n");
scanf("%d", &ch);
switch (ch) {
case 1:
root = construct_BST(root); // Construct BST
break;
case 2:
printf("Preorder Traversal:\n");
preorder(root); // Preorder traversal
printf("\n");
break;
case 3:
printf("Inorder Traversal:\n");
inorder(root); // Inorder traversal
printf("\n");
break;
case 4:
printf("Postorder Traversal:\n");
postorder(root); // Postorder traversal
printf("\n");
break;
case 5:
if (root == NULL)
printf("Tree is empty.\n");
else {
printf("Enter the element to search:\n");
scanf("%d", &key);
n = search_element(root, key); // Search element
if (n)
printf("Key found.\n");
else
printf("Key not found.\n");
}
break;
case 6:
exit(0); // Exit the program
default:
printf("Invalid choice.\n");
}
}
return 0;
}