1: #include<stdio.h>
2: #include<conio.h>
3: struct tree
4: {
5: struct tree *left;
6: int info;
7: struct tree *right;
8: };
9: struct tree *root;
10: void insert(int element);
11: void display(struct tree *root,int choice);
12: void pd(struct tree *root,int value,int option);
13: void main()
14: {
15: int i,x,a,data;
16: char ch;
17: struct tree *s;
18: clrscr();
19: root=NULL;
20: do
21: {
22: printf("Enter your choice\n1.Insert an element\n2.Display\n");
23: printf("3.Find predecessor and successor in Inorder traversal\n");
24: scanf("%d",&x);
25: if(x==1)
26: {
27: printf("Enter the element\n");
28: scanf("%d",&i);
29: insert(i);
30: }
31: else if(x==2)
32: {
33: clrscr();
34: printf("1.Inorder notation\n2.Preorder notation\n4.Postorder notation\n");
35: scanf("%d",&a);
36: display(root,a);
37: }
38: else if(x==3)
39: {
40: clrscr();
41: printf("Enter the element\n");
42: scanf("%d",&data);
43: printf("1.Inorder notation\n2.Preorder notation\n3.Postorder notation\n");
44: scanf("%d",&a);
45: pd(root,data,a);
46: }
47: printf("\nDo you want to continue> y/n\n");
48: scanf(" %c",&ch);
49: clrscr();
50: }
51: while(ch=='y');
52: getch();
53: }
54: void insert(int element)
55: {
56: struct tree *newptr,*ptr,*parent;
57: newptr=(struct tree *)malloc(sizeof(struct tree));
58: newptr->info=element;
59: newptr->left=newptr->right=NULL;
60: if(root==NULL)
61: {
62: root=newptr;
63: }
64: else
65: {
66: parent=NULL;
67: ptr=root;
68: while(ptr!=NULL)
69: {
70: parent=ptr;
71: if(element<ptr->info)
72: {
73: ptr=ptr->left;
74: }
75: else
76: {
77: ptr=ptr->right;
78: }
79: }
80: if(element<parent->info)
81: {
82: parent->left=newptr;
83: }
84: else
85: {
86: parent->right=newptr;
87: }
88: }
89: }
90: void display(struct tree *root,int choice)
91: {
92: if(choice==1)
93: {
94: if(root!=NULL)
95: {
96: display(root->left,choice);
97: printf("%d\t",root->info);
98: display(root->right,choice);
99: }
100: }
101: else if(choice==2)
102: {
103: if(root!=NULL)
104: {
105: printf("%d\t",root->info);
106: display(root->left,choice);
107: display(root->right,choice);
108: }
109: }
110: else if(choice==3)
111: {
112: if(root!=NULL)
113: {
114: display(root->left,choice);
115: display(root->right,choice);
116: printf("%d\t",root->info);
117: }
118: }
119: }
120: void pd(struct tree *root,int data,int option)
121: {
122: int array[20];
123: int i=0,k=0,a=0;
124: if(option==1)
125: {
126: if(root!=NULL)
127: {
128: pd(root->left,data,option);
129: array[i]=root->info;
130: i++;
131: pd(root->right,data,option);
132: }
133: }
134: else if(option==2)
135: {
136: if(root!=NULL)
137: {
138: array[i]=root->info;
139: i++;
140: pd(root->left,data,option);
141: pd(root->right,data,option);
142: }
143: }
144: else if(option==3)
145: {
146: if(root!=NULL)
147: {
148: pd(root->left,data,option);
149: pd(root->right,data,option);
150: array[i]=root->info;
151: i++;
152: }
153: }
154: for(i=0;i<19;i++)
155: {
156: if(array[i]==data)
157: {
158: k=i;
159: }
160: else
161: i++;
162: }
163: if(k==0)
164: {
165: printf("No Predecessor :-(\n");
166: }
167: else
168: printf("Predecessor = %d",array[k-1]);
169: printf("Successor = %d",array[k+1]);
170: }
getsprogramming Tutorials , C Programming, CPP Programming and JAVA Programming , Python Programming , Javascript Programming Welcome to getsprogramming Blog Here You Find Different Programs in Easier way to Explain and gain Knowledge and Try Your Self..Thanks
Thursday, 24 September 2015
Write a C Program To Find Predecessor And Successor Of An Element
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment