Prog_10 Binary Search Tree
Prog_10 Binary Search Tree
#include <stdio.h>
#include <stdlib.h>
struct Node {
int data;
};
newNode->data = key;
return newNode;
if (root == NULL)
return createNode(key);
if (key < root->data)
return root;
if (root != NULL) {
inorder(root->left);
inorder(root->right);
if (root != NULL) {
preorder(root->left);
preorder(root->right);
if (root != NULL) {
postorder(root->left);
postorder(root->right);
if (root == NULL) {
return;
if (key == root->data) {
search(root->left, key);
} else {
search(root->right, key);
if (root != NULL) {
freeBST(root->left);
freeBST(root->right);
free(root);
}
int main() {
do {
printf("\nMenu:\n");
printf("4. Exit\n");
scanf("%d", &choice);
switch (choice) {
case 1:
scanf("%d", &key);
break;
case 2:
inorder(root);
preorder(root);
postorder(root);
printf("\n");
break;
case 3:
scanf("%d", &key);
search(root, key);
break;
case 4:
freeBST(root);
break;
default:
return 0;
Output:
Menu:
4. Exit
Menu:
4. Exit
Inorder Traversal: 2 5 6 7 8 9 14 15 24
Preorder Traversal: 6 5 2 9 8 7 15 14 24
Postorder Traversal: 2 5 7 8 14 24 15 9 6
Menu:
4. Exit
Menu:
4. Exit