-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathQueue_Generic.c
More file actions
46 lines (41 loc) · 818 Bytes
/
Queue_Generic.c
File metadata and controls
46 lines (41 loc) · 818 Bytes
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
#include <stdio.h>
void enqueue(int *queue, int *front, int *rear, int size, int item){
if(*rear == (size - 1)){
printf("Queue is full !\n");
return;
}
else if( *front == -1){
*front += 1;
}
queue[*rear + 1] = item;
*rear += 1;
}
int dequeue(int *queue, int *front, int *rear){
if(*front == -1){
printf("Queue is empty !\n");
return 0;
}
int i = queue[*front];
if(*front == *rear){
*front = *rear = -1;
return i;
}
*front += 1;
return i;
}
void display(int *queue, int *front, int *rear, int size){
int temp[size], f = -1, r = -1;
while(*front != -1){
int t = dequeue(queue, front, rear);
if(t){
printf("%d| ", t);
enqueue(temp, &f, &r, size, t);
}
}
printf("\n");
while(f != -1){
int t = dequeue(temp, &f, &r);
if(t)
enqueue(queue, front, rear, size, t);
}
}