#include<stdio.h> #include<conio.h> #include<malloc.h> struct node { int data; struct node *right, *left; }; struct node *nw, *root, *temp; int key,flag=0; 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); } } int search(struct node *temp,int key) { if(temp != NULL) { if(key == temp-> data) printf("Searching Sucessfull"); else if(key < temp->data) search(temp->left,key); else if(key > temp -> data) search(temp->right,key); } else printf("Not Found"); return (key); } 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. Searching\n3. Inorder\n4. Preorder \n5. Postorder\n6. 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: clrscr(); printf("Enter The Number You want to Search: "); scanf("%d",&key); search(root,key); getch(); break; case 3: inorder(root); getch(); break; case 4: preorder(root); getch(); break; case 5: postorder(root); getch(); break; } }while(ch != 6); getch(); }
OUTPUT 1. Creation 2. Searching 3. Inorder 4. Preorder 5. Postorder 6. Exit Enter Your Choice : 1 Enter Element : 50 1. Creation 2. Searching 3. Inorder 4. Preorder 5. Postorder 6. Exit Enter Your Choice : 1 Enter Element : 30 1. Creation 2. Searching 3. Inorder 4. Preorder 5. Postorder 6. Exit Enter Your Choice : 1 Enter Element : 70 1. Creation 2. Searching 3. Inorder 4. Preorder 5. Postorder 6. Exit Enter Your Choice : 1 Enter Element : 10 1. Creation 2. Searching 3. Inorder 4. Preorder 5. Postorder 6. Exit Enter Your Choice : 1 Enter Element : 40 1. Creation 2. Searching 3. Inorder 4. Preorder 5. Postorder 6. Exit Enter Your Choice : 1 Enter Element : 60 1. Creation 2. Searching 3. Inorder 4. Preorder 5. Postorder 6. Exit Enter Your Choice : 1 Enter Element : 80 1. Creation 2. Searching 3. Inorder 4. Preorder 5. Postorder 6. Exit Enter Your Choice : 2 Enter The Number You want to Search: 60 Searching Sucessfull 1. Creation 2. Searching 3. Inorder 4. Preorder 5. Postorder 6. Exit Enter Your Choice : 3 10 30 40 50 60 70 80 1. Creation 2. Searching 3. Inorder 4. Preorder 5. Postorder 6. Exit Enter Your Choice : 4 50 30 10 40 70 60 80 1. Creation 2. Searching 3. Inorder 4. Preorder 5. Postorder 6. Exit Enter Your Choice : 5 10 40 30 60 80 70 50