-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathNormalQueueImplementation.c
148 lines (137 loc) · 2.95 KB
/
NormalQueueImplementation.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
/* header files */
#include<stdio.h>
#include<stdlib.h>
/* defining 5 as size */
#define size 5
/* Declaration and Initialization of Queue*/
int queue[size];
/* Initialization condition */
int f = -1;
int r = -1;
/* function prototyping */
void enqueue(int);
void dequeue();
void isEmpty();
void show();
/* main function */
int main()
{
int ch, n;
/* while loop */
while(1)
{
printf("\n----Queue_Menu-----");
printf("\n1.Enqueue");
printf("\n2.Dequeue");
printf("\n3.isEmpty");
printf("\n4.Show");
printf("\n5.Exit");
printf("\nEnter your choice : ");
scanf("%d", &ch);
/* switch case starts here */
switch(ch)
{
case 1:
printf("Enter a integer : ");
scanf("%d", &n);
enqueue(n);
break;
case 2:
dequeue();
break;
case 3:
isEmpty();
break;
case 4:
show();
break;
case 5:
exit(0);
break;
default:
printf("\nInvalid Choice!");
} /* switch case ends here */
} /* while loop ends here */
} /* main function ends here */
/* enqueue(int) -> adds element into queue */
void enqueue(int x)
{
// Adding First Element of Queue //
if(f == -1 && r == -1)
{
f++;
queue[++r] = x;
} else {
// Other Element //
if(r == size - 1)
{
printf("\nqueue overflow!");
} else {
queue[++r] = x;
}
}
}
/* enqueue() ends here */
/* dequeue() -> removes an element from front */
void dequeue()
{
// Empty Queue Condition //
if(r == -1 && f == -1)
{
printf("\nQueue is Empty!");
}
// One Element Condition //
else if(r == f)
{
f = -1;
r = -1;
}
// Other Element //
else {
f++;
}
}
/* dequeue() ends here */
/* isEmpty() -> checks if the queue is empty or not */
void isEmpty()
{
if(f == -1 && r == -1)
{
printf("\nQueue is Empty!");
} else {
printf("\nQueue is Not Empty!");
}
}
/* isEmpty() ends here */
/* show() -> displays queue */
void show()
{
int i;
/* empty condition */
if(f == -1 && r == -1)
{
printf("\nQueue is Empty!");
} else {
for(i = f; i <= r; i++)
{
/* display front and rear pointers */
if(r == f)
{
printf("\n%d <- front & rear", queue[i]);
}
else if(i == f)
{
printf("\n%d <- front",queue[i]);
}
else if(i == r)
{
printf("\n%d <- rear ",queue[i]);
}
else
{
printf("\n%d", queue[i]);
}
}
}
}
/* show() ends here */