#include<stdio.h> #include<conio.h> #include<malloc.h> struct node { int data; struct node *right, *left; }; struct node *nw, *root, *temp; void creation(struct node *root, struct node *nw) { if(nw -> data < root-> data) { if(root -> left == NULL) root -> left = nw; else creation(root->left, nw); } if(nw -> data > root -> data) { if(root -> right == NULL) root -> right = nw; else creation(root -> right , nw); } } void inorder(struct node *temp) { if(temp != NULL) { inorder(temp -> left); printf(" %d ",temp->data); inorder(temp -> right); } } void preorder(struct node *temp) { if(temp != NULL) { printf(" %d ",temp->data); preorder(temp -> left); preorder(temp -> right); } } void postorder(struct node *temp) { if(temp != NULL) { postorder(temp -> left); postorder(temp -> right); printf(" %d ",temp->data); } } void main() { int ch,item; root = NULL; do { clrscr(); printf("1. Creation \n2. Inorder Traversal\n3. Preorder Traversal\n4. Postorder Traversal\n5. Exit\n\nEnter Your Choice : "); scanf("%d",&ch); switch(ch) { case 1: { printf("Enter Item : "); scanf("%d",&item); nw= (struct node *)malloc(sizeof(struct node)); nw -> data = item; nw -> left = NULL; nw -> right = NULL; if(root == NULL) root = nw; else creation(root,nw); } break; case 2: inorder(root); getch(); break; case 3: preorder(root); getch(); break; case 4: postorder(root); getch(); break; } }while(ch != 5); }
OUTPUT
1. Creation
2. Inorder Traversal
3. Preorder Traversal
4. Postorder Traversal
5. Exit
Enter Your Choice : 1
Enter Item : 50
1. Creation
2. Inorder Traversal
3. Preorder Traversal
4. Postorder Traversal
5. Exit
Enter Your Choice : 1
Enter Item : 30
1. Creation
2. Inorder Traversal
3. Preorder Traversal
4. Postorder Traversal
5. Exit
Enter Your Choice : 1
Enter Item : 70
1. Creation
2. Inorder Traversal
3. Preorder Traversal
4. Postorder Traversal
5. Exit
Enter Your Choice : 1
Enter Item : 10
1. Creation
2. Inorder Traversal
3. Preorder Traversal
4. Postorder Traversal
5. Exit
Enter Your Choice : 1
Enter Item : 40
1. Creation
2. Inorder Traversal
3. Preorder Traversal
4. Postorder Traversal
5. Exit
Enter Your Choice : 1
Enter Item : 60
1. Creation
2. Inorder Traversal
3. Preorder Traversal
4. Postorder Traversal
5. Exit
Enter Your Choice : 1
Enter Item : 80
1. Creation
2. Inorder Traversal
3. Preorder Traversal
4. Postorder Traversal
5. Exit
Enter Your Choice : 2
10 30 40 50 60 70 80
1. Creation
2. Inorder Traversal
3. Preorder Traversal
4. Postorder Traversal
5. Exit
Enter Your Choice : 3
50 30 10 40 70 60 80
1. Creation
2. Inorder Traversal
3. Preorder Traversal
4. Postorder Traversal
5. Exit
Enter Your Choice : 4
10 40 30 60 80 70 50