#include <stdio.h>
#include <stdlib.h>
struct Node
{
int data;
struct Node* left;
struct Node* right;
};
typedef struct Node Node;
Node* createNode(int data)
{
Node* newNode = (Node*)malloc(sizeof(Node));
newNode->data = data;
newNode->left = NULL;
newNode->right = NULL;
return newNode;
}
Node* insert(Node* root, int data)
{
if (root == NULL)
{
return createNode(data);
}
if (data < root->data)
{
root->left = insert(root->left, data);
}
else if (data > root->data)
{
root->right = insert(root->right, data);
}
return root;
}
void inorderTraversal(Node* root)
{
if (root == NULL)
{
return;
}
inorderTraversal(root->left);
printf("%d ", root->data);
inorderTraversal(root->right);
}
void postorderTraversal(Node* root)
{
if (root == NULL)
{
return;
}
postorderTraversal(root->left);
postorderTraversal(root->right);
printf("%d ", root->data);
}
int main()
{
Node* root = NULL;
int choice, value;
while (1)
{
printf("\nMenu:\n");
printf("1. Insert into BST\n");
printf("2. Inorder Traversal\n");
printf("3. Postorder Traversal\n");
printf("4. Exit\n");
printf("Enter your choice: ");
scanf("%d", &choice);
switch (choice)
{
case 1:
printf("Enter value to insert: ");
scanf("%d", &value);
root = insert(root, value);
break;
case 2:
printf("Inorder Traversal: ");
inorderTraversal(root);
printf("\n");
break;
case 3:
printf("Postorder Traversal: ");
postorderTraversal(root);
printf("\n");
break;
case 4:
printf("Exiting program.\n");
exit(0);
default:
printf("Invalid choice. Please enter a valid option.\n");
}
}
return 0;
}
Output:
Menu:
1. Insert into BST
2. Inorder Traversal
3. Postorder Traversal
4. Exit
Enter your choice: 1
Enter value to insert: 25
Menu:
1. Insert into BST
2. Inorder Traversal
3. Postorder Traversal
4. Exit
Enter your choice: 1
Enter value to insert: 4
Menu:
1. Insert into BST
2. Inorder Traversal
3. Postorder Traversal
4. Exit
Enter your choice: 1
Enter value to insert: 45
Menu:
1. Insert into BST
2. Inorder Traversal
3. Postorder Traversal
4. Exit
Enter your choice: 2
Inorder Traversal: 4 25 45
Menu:
1. Insert into BST
2. Inorder Traversal
3. Postorder Traversal
4. Exit
Enter your choice: 3
Postorder Traversal: 4 45 25
No comments:
Post a Comment