Learn
Practice
Interview
Resources
Newsletter
F
Toggle theme
0
F
0
Toggle menu
Animations
← Back to All Animations
Design Circular Queue
Bookmark
Count Variable
Extra Slot
Input
Standard
Wrap Around
Full Cycle
Custom
k
=
3
,
operations
=
[enQueue(1), enQueue(2), enQueue(3), enQueue(4), Rear(), isFull(), deQueue(), enQueue(4), Rear()]
front
0
rear
0
count
0
/3
OPERATIONS
enQueue(1)
enQueue(2)
enQueue(3)
enQueue(4)
Rear()
isFull()
deQueue()
enQueue(4)
Rear()
0
1
2
3
rear
front
size = k + 1 =
4
(one slot always stays unused)
front
0
rear
0
count
0
/3
OPERATIONS
enQueue(1)
enQueue(2)
enQueue(3)
enQueue(4)
Rear()
isFull()
deQueue()
enQueue(4)
Rear()
0
1
2
3
rear
front
size = k + 1 =
4
(one slot always stays unused)
enQueue(1)
front
0
rear
0
count
0
/3
OPERATIONS
enQueue(1)
enQueue(2)
enQueue(3)
enQueue(4)
Rear()
isFull()
deQueue()
enQueue(4)
Rear()
1
0
1
2
3
rear
front
data[
0
] =
1
enQueue(2)
front
0
rear
1
count
1
/3
OPERATIONS
enQueue(1)
→
true
enQueue(2)
enQueue(3)
enQueue(4)
Rear()
isFull()
deQueue()
enQueue(4)
Rear()
1
2
0
1
2
3
rear
front
data[
1
] =
2
enQueue(3)
front
0
rear
2
count
2
/3
OPERATIONS
enQueue(1)
→
true
enQueue(2)
→
true
enQueue(3)
enQueue(4)
Rear()
isFull()
deQueue()
enQueue(4)
Rear()
1
2
0
1
2
3
rear
front
(rear + 1) % size == front
→
(2 + 1) % 4
==
0
→
false
enQueue(4)
front
0
rear
3
count
3
/3
OPERATIONS
enQueue(1)
→
true
enQueue(2)
→
true
enQueue(3)
→
true
enQueue(4)
Rear()
isFull()
deQueue()
enQueue(4)
Rear()
1
2
3
0
1
2
3
rear
front
Rear()
→
3
front
0
rear
3
count
3
/3
OPERATIONS
enQueue(1)
→
true
enQueue(2)
→
true
enQueue(3)
→
true
enQueue(4)
→
false
Rear()
isFull()
deQueue()
enQueue(4)
Rear()
1
2
3
0
1
2
3
rear
front
data[(rear - 1 + 4) % 4] = data[
2
] =
3
deQueue()
front
0
rear
3
count
3
/3
OPERATIONS
enQueue(1)
→
true
enQueue(2)
→
true
enQueue(3)
→
true
enQueue(4)
→
false
Rear()
→
3
isFull()
→
true
deQueue()
enQueue(4)
Rear()
1
2
3
0
1
2
3
rear
front
deQueue()
→
true
front
1
rear
3
count
2
/3
OPERATIONS
enQueue(1)
→
true
enQueue(2)
→
true
enQueue(3)
→
true
enQueue(4)
→
false
Rear()
→
3
isFull()
→
true
deQueue()
enQueue(4)
Rear()
2
3
0
1
2
3
rear
front
front = (
0
+ 1) % 4 =
1
enQueue(4)
→
true
front
1
rear
0
count
3
/3
OPERATIONS
enQueue(1)
→
true
enQueue(2)
→
true
enQueue(3)
→
true
enQueue(4)
→
false
Rear()
→
3
isFull()
→
true
deQueue()
→
true
enQueue(4)
Rear()
2
3
4
0
1
2
3
rear
front
rear = (
3
+ 1) % 4 =
0
complete
front
1
rear
0
count
3
/3
OPERATIONS
enQueue(1)
→
true
enQueue(2)
→
true
enQueue(3)
→
true
enQueue(4)
→
false
Rear()
→
3
isFull()
→
true
deQueue()
→
true
enQueue(4)
→
true
Rear()
→
4
2
3
4
0
1
2
3
rear
front
all operations complete
algo
master
.
io
Step:
Start: circular queue with capacity 3. The array has 3 + 1 = 4 slots (one slot always stays unused), front = 0, rear = 0.
0 / 30
Input
Standard
Wrap Around
Full Cycle
Custom
k
=
3
,
operations
=
[enQueue(1), enQueue(2), enQueue(3), enQueue(4), Rear(), isFull(), deQueue(), enQueue(4), Rear()]
0 / 30
algo
master
.
io
Step:
Start: circular queue with capacity 3. The array has 3 + 1 = 4 slots (one slot always stays unused), front = 0, rear = 0.