Search BST
Thu May 25 2023 16:07:23 GMT+0000 (Coordinated Universal Time)
Saved by @prachi
#include <stdio.h>
#include <stdlib.h>
struct node {
int data;
struct node* left;
struct node* right;
};
struct node* createNode(int data) {
struct node* newNode = (struct node*)malloc(sizeof(struct node));
newNode->data = data;
newNode->left = NULL;
newNode->right = NULL;
return newNode;
}
struct node* insertNode(struct node* root, int data) {
if (root == NULL) {
return createNode(data);
}
if (data < root->data) {
root->left = insertNode(root->left, data);
} else if (data > root->data) {
root->right = insertNode(root->right, data);
}
return root;
}
struct node* search(struct node* root, int key) {
if (root == NULL || root->data == key) {
return root;
}
if (key < root->data) {
return search(root->left, key);
}
return search(root->right, key);
}
int main() {
struct node* root = NULL;
int choice, data, key;
struct node* foundNode;
while (1) {
printf("Binary Search Tree Operations:\n");
printf("1. Insert Element\n");
printf("2. Search Element\n");
printf("3. Exit\n");
printf("Enter your choice: ");
scanf("%d", &choice);
switch (choice) {
case 1:
printf("Enter the element to insert: ");
scanf("%d", &data);
root = insertNode(root, data);
printf("Element inserted successfully.\n");
break;
break;
case 2:
printf("Enter the element to search: ");
scanf("%d", &key);
foundNode = search(root, key);
if (foundNode != NULL) {
printf("Element found: %d\n", foundNode->data);
} else {
printf("Element not found.\n");
}
break;
case 3:
printf("Exiting...\n");
exit(0);
default:
printf("Invalid choice! Please enter a valid option.\n");
}
printf("\n");
}
return 0;
}



Comments