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
Showing posts with label successor. Show all posts
Showing posts with label successor. Show all posts
Thursday, 24 September 2015
Write a C Program To Find Predecessor And Successor Of An Element
Subscribe to:
Posts (Atom)