#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* insert(struct 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 preorderTraversal(struct Node* root) { if (root != NULL) { printf("%d ", root->data); preorderTraversal(root->left); preorderTraversal(root->right); } } void inorderTraversal(struct Node* root) { if (root != NULL) { inorderTraversal(root->left); printf("%d ", root->data); inorderTraversal(root->right); } } void postorderTraversal(struct Node* root) { if (root != NULL) { postorderTraversal(root->left); postorderTraversal(root->right); printf("%d ", root->data); } } int main() { struct Node* root = NULL; int num, data; printf("Enter the number of elements: "); scanf("%d", &num); printf("Enter the elements: "); for (int i = 0; i < num; i++) { scanf("%d", &data); root = insert(root, data); } printf("Preorder Traversal: "); preorderTraversal(root); printf("\n"); printf("Inorder Traversal: "); inorderTraversal(root); printf("\n"); printf("Postorder Traversal: "); postorderTraversal(root); printf("\n"); return 0; }