Skip to content

Commit 680c84f

Browse files
committed
Python implementation of Circular Queue
1 parent 54d515a commit 680c84f

File tree

1 file changed

+55
-0
lines changed

1 file changed

+55
-0
lines changed

Queue/CicularQueue.py

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
# Author: OMKAR PATHAK
2+
3+
class CircularQueue(object):
4+
def __init__(self, limit = 10):
5+
self.front = None
6+
self.rear = None
7+
self.limit = limit
8+
self.queue = []
9+
10+
# for printing the queue
11+
def __str__(self):
12+
return ' '.join([str(i) for i in self.queue])
13+
14+
# for checking if queue is empty
15+
def isEmpty(self):
16+
return self.queue == []
17+
18+
# for checking if the queue is full
19+
def isFull(self):
20+
return len(self.queue) == self.limit
21+
22+
# for adding an element at the rear end
23+
def enqueue(self, data):
24+
if self.isFull():
25+
print('Queue is Full!')
26+
elif self.isEmpty():
27+
self.front = self.rear = 0
28+
self.queue.append(data)
29+
else:
30+
self.rear += 1
31+
self.queue.append(data)
32+
33+
# for deleting the deleting an element from front end
34+
def dequeue(self):
35+
if self.isEmpty():
36+
print('Queue is Empty!')
37+
else:
38+
self.front += 1
39+
return self.queue.pop(0)
40+
41+
if __name__ == '__main__':
42+
myCQ = CircularQueue(5)
43+
myCQ.enqueue(14)
44+
myCQ.enqueue(22)
45+
myCQ.enqueue(13)
46+
myCQ.enqueue(16)
47+
print('Queue:',myCQ)
48+
myCQ.dequeue()
49+
myCQ.dequeue()
50+
print('Queue:',myCQ)
51+
myCQ.enqueue(9)
52+
myCQ.enqueue(20)
53+
myCQ.enqueue(5)
54+
myCQ.enqueue(5)
55+
print('Queue:',myCQ)

0 commit comments

Comments
 (0)