-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathqueue_array.c
More file actions
executable file
·144 lines (127 loc) · 2.2 KB
/
queue_array.c
File metadata and controls
executable file
·144 lines (127 loc) · 2.2 KB
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
#include <stdio.h>
#include <stdlib.h>
#define SIZE 5
int queue[SIZE], front = -1, rear = -1;
/**
* is_empty - Checks if the queue is empty.
*
* Return: 1 if the queue is empty, 0 otherwise.
*/
int is_empty(void)
{
return front == -1;
}
/**
* is_full - Checks if the queue is full.
*
* Return: 1 if the queue is full, 0 otherwise.
*/
int is_full(void)
{
return rear == SIZE - 1;
}
/**
* peek - Returns the value at the front of the queue.
*
* Return: The value at the front of the queue.
*/
int peek(void)
{
if (is_empty())
{
printf("Queue is empty\n");
exit(1);
}
return queue[front];
}
/**
* en_queue - Adds an element to the rear of the queue.
* @value: The value to be enqueued.
*/
void en_queue(int value)
{
if (is_full())
{
printf("Queue is full\n");
return;
}
if (front == -1)
front = 0;
rear++;
queue[rear] = value;
}
/**
* de_queue - Removes the front element from the queue.
*/
void de_queue(void)
{
if (is_empty())
{
printf("Queue is empty\n");
return;
}
front++;
if (front > rear)
{
front = -1;
rear = -1;
}
}
/**
* front_value - Returns the value at the front of the queue.
*
* Return: The value at the front of the queue.
*/
int front_value(void)
{
if (is_empty())
{
printf("Queue is empty\n");
exit(1);
}
return queue[front];
}
/**
* rear_value - Returns the value at the rear of the queue.
*
* Return: The value at the rear of the queue.
*/
int rear_value(void)
{
if (is_empty())
{
printf("Queue is empty\n");
exit(1);
}
return queue[rear];
}
/**
* print_queue - Prints the elements in the queue.
*/
void print_queue(void)
{
if (is_empty())
{
printf("Queue is empty\n");
return;
}
printf("Queue elements are:\n");
for (int i = front; i <= rear; i++)
{
printf("%d\n", queue[i]);
}
}
int main(void)
{
de_queue();
en_queue(1);
en_queue(2);
en_queue(3);
en_queue(4);
printf("Queue after enqueuing:\n");
print_queue();
de_queue();
printf("Queue after dequeuing:\n");
print_queue();
return 0;
}