Form
#include <stdio.h>
#include <stdlib.h>
#define MAX 100
int tree[MAX];
// Function prototypes
void insertNode(int data);
void preorderTraversal(int index);
void inorderTraversal(int index);
void postorderTraversal(int index);
void menu();
int main() {
int choice, data;
// Initialize the tree array with -1 indicating empty nodes
for (int i = 0; i < MAX; i++) {
tree[i] = -1;
}
while (1) {
menu();
printf("Enter your choice: ");
scanf("%d", &choice);
switch (choice) {
case 1:
printf("Enter the data to insert: ");
scanf("%d", &data);
insertNode(data);
break;
case 2:
printf("Preorder traversal: ");
preorderTraversal(0);
printf("\n");
break;
case 3:
printf("Inorder traversal: ");
inorderTraversal(0);
printf("\n");
break;
case 4:
printf("Postorder traversal: ");
postorderTraversal(0);
printf("\n");
break;
case 5:
exit(0);
default:
printf("Invalid choice! Please try again.\n");
}
}
return 0;
}
// Function to insert a node in the binary tree
void insertNode(int data) {
int i = 0;
while (i < MAX) {
if (tree[i] == -1) {
tree[i] = data;
break;
} else if (data < tree[i]) {
i = 2 * i + 1; // Move to the left child
} else {
i = 2 * i + 2; // Move to the right child
}
}
if (i >= MAX) {
printf("Tree is full, cannot insert more nodes.\n");
}
}
// Function for preorder traversal
void preorderTraversal(int index) {
if (index < MAX && tree[index] != -1) {
printf("%d ", tree[index]);
preorderTraversal(2 * index + 1);
preorderTraversal(2 * index + 2);
}
}
// Function for inorder traversal
void inorderTraversal(int index) {
if (index < MAX && tree[index] != -1) {
inorderTraversal(2 * index + 1);
printf("%d ", tree[index]);
inorderTraversal(2 * index + 2);
}
}
// Function for postorder traversal
void postorderTraversal(int index) {
if (index < MAX && tree[index] != -1) {
postorderTraversal(2 * index + 1);
postorderTraversal(2 * index + 2);
printf("%d ", tree[index]);
}
}
// Function to display the menu
void menu() {
printf("\nMenu:\n");
printf("1. Insert Node\n");
printf("2. Preorder Traversal\n");
printf("3. Inorder Traversal\n");
printf("4. Postorder Traversal\n");
printf("5. Exit\n");
}
Comments
Post a Comment