Skip to content

Commit 54d515a

Browse files
committed
Python implementation of Queue
1 parent aa50830 commit 54d515a

File tree

1 file changed

+56
-0
lines changed

1 file changed

+56
-0
lines changed

Queue/Queue.py

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
# Author: OMKAR PATHAK
2+
3+
class Queue(object):
4+
def __init__(self, limit = 10):
5+
self.queue = []
6+
self.front = None
7+
self.rear = None
8+
self.limit = limit
9+
self.size = 0
10+
11+
def __str__(self):
12+
return ' '.join([str(i) for i in self.queue])
13+
14+
# to check if queue is empty
15+
def isEmpty(self):
16+
return self.size <= 0
17+
18+
# to add an element from the rear end of the queue
19+
def enqueue(self, data):
20+
if self.size >= self.limit:
21+
return -1 # queue overflow
22+
else:
23+
self.queue.append(data)
24+
25+
# assign the rear as size of the queue and front as 0
26+
if self.front is None:
27+
self.front = self.rear = 0
28+
else:
29+
self.rear = self.size
30+
31+
self.size += 1
32+
33+
# to pop an element from the front end of the queue
34+
def dequeue(self):
35+
if self.isEmpty():
36+
return -1 # queue underflow
37+
else:
38+
self.queue.pop()
39+
self.size -= 1
40+
if self.size == 0:
41+
self.front = self.rear = 0
42+
else:
43+
self.rear = self.size - 1
44+
45+
def getSize(self):
46+
return self.size
47+
48+
if __name__ == '__main__':
49+
myQueue = Queue()
50+
for i in range(10):
51+
myQueue.enqueue(i)
52+
print(myQueue)
53+
print('Queue Size:',myQueue.getSize())
54+
myQueue.dequeue()
55+
print(myQueue)
56+
print('Queue Size:',myQueue.getSize())

0 commit comments

Comments
 (0)