Skip to content

Commit 5632929

Browse files
Queue in Python
1 parent 3761fe5 commit 5632929

File tree

5 files changed

+423
-0
lines changed

5 files changed

+423
-0
lines changed

stack-and-queue/circular-queue.py

Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
# Copyright (C) Deepali Srivastava - All Rights Reserved
2+
# This code is part of DSA course available on CourseGalaxy.com
3+
4+
class EmptyQueueError(Exception):
5+
pass
6+
7+
class Queue:
8+
9+
def __init__(self,default_size=10):
10+
self.items = [None] * default_size
11+
self.front = 0
12+
self.count = 0
13+
14+
def is_empty(self):
15+
return self.count == 0
16+
17+
def size(self):
18+
return self.count
19+
20+
def enqueue(self, item):
21+
if self.count == len(self.items):
22+
self.resize( 2*len(self.items) )
23+
24+
i = (self.front + self.count) % len(self.items)
25+
self.items[i] = item
26+
self.count+=1
27+
28+
def dequeue(self):
29+
if self.is_empty():
30+
raise EmptyQueueError("Queue is empty")
31+
32+
x = self.items[self.front]
33+
self.items[self.front] = None
34+
self.front = (self.front + 1) % len(self.items)
35+
self.count-=1
36+
return x
37+
38+
def peek(self):
39+
if self.is_empty():
40+
raise EmptyQueueError("Queue is empty")
41+
return self.items[self.front]
42+
43+
def display(self):
44+
print(self.items)
45+
46+
def resize(self,newsize):
47+
old_list = self.items
48+
self.items = [None]*newsize
49+
i = self.front
50+
for j in range(self.count):
51+
self.items[j] = old_list[i]
52+
i = (1+i)%len(old_list)
53+
self.front = 0
54+
55+
###########################################################
56+
57+
if __name__ == "__main__":
58+
qu = Queue(6)
59+
60+
while True:
61+
print("1.Enqueue")
62+
print("2.Dequeue")
63+
print("3.Peek")
64+
print("4.Size")
65+
print("5.Display")
66+
print("6.Quit")
67+
68+
choice = int(input("Enter your choice : "))
69+
70+
if choice == 1:
71+
x=int(input("Enter the element : "))
72+
qu.enqueue(x)
73+
elif choice == 2:
74+
x=qu.dequeue()
75+
print("Element deleted from the queue is : " , x)
76+
elif choice == 3:
77+
print("Element at the front end is " , qu.peek())
78+
elif choice == 4:
79+
print("Size of queue ", qu.size())
80+
elif choice == 5:
81+
qu.display()
82+
elif choice == 6:
83+
break
84+
else:
85+
print("Wrong choice")
86+
print()

stack-and-queue/queue-array-1.py

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
# Copyright (C) Deepali Srivastava - All Rights Reserved
2+
# This code is part of DSA course available on CourseGalaxy.com
3+
4+
class EmptyQueueError(Exception):
5+
pass
6+
7+
class Queue:
8+
9+
def __init__(self):
10+
self.items = []
11+
self.front = 0
12+
13+
def is_empty(self):
14+
return self.front == len(self.items)
15+
16+
def size(self):
17+
return len(self.items)-self.front
18+
19+
def enqueue(self, item):
20+
self.items.append(item)
21+
22+
def dequeue(self):
23+
if self.is_empty():
24+
raise EmptyQueueError("Queue is Empty")
25+
26+
x = self.items[self.front]
27+
self.items[self.front] = None
28+
self.front = self.front + 1
29+
return x
30+
31+
def peek(self):
32+
if self.is_empty():
33+
raise EmptyQueueError("Queue is Empty")
34+
35+
return self.items[self.front]
36+
37+
def display(self):
38+
print(self.items)
39+
40+
###########################################################
41+
42+
if __name__ == "__main__":
43+
qu = Queue()
44+
45+
while True:
46+
print("1.Enqueue")
47+
print("2.Dequeue")
48+
print("3.Peek")
49+
print("4.Size")
50+
print("5.Display")
51+
print("6.Quit")
52+
53+
choice = int(input("Enter your choice : "))
54+
55+
if choice == 1:
56+
x=int(input("Enter the element : "))
57+
qu.enqueue(x)
58+
elif choice == 2:
59+
x=qu.dequeue()
60+
print("Element deleted from the queue is : " , x)
61+
elif choice == 3:
62+
print("Element at the front end is " , qu.peek())
63+
elif choice == 4:
64+
print("Size of queue ", qu.size())
65+
elif choice == 5:
66+
qu.display()
67+
elif choice == 6:
68+
break;
69+
else:
70+
print("Wrong choice")
71+
print()
72+

stack-and-queue/queue-array.py

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
# Copyright (C) Deepali Srivastava - All Rights Reserved
2+
# This code is part of DSA course available on CourseGalaxy.com
3+
4+
class EmptyQueueError(Exception):
5+
pass
6+
7+
class Queue:
8+
9+
def __init__(self):
10+
self.items = []
11+
12+
def is_empty(self):
13+
return self.items == []
14+
15+
def size(self):
16+
return len(self.items)
17+
18+
def enqueue(self, item):
19+
self.items.append(item)
20+
21+
def dequeue(self):
22+
if self.is_empty():
23+
raise EmptyQueueError("Queue is Empty")
24+
return self.items.pop(0)
25+
26+
def peek(self):
27+
if self.is_empty():
28+
raise EmptyQueueError("Queue is Empty")
29+
return self.items[0]
30+
31+
def display(self):
32+
print(self.items)
33+
34+
###########################################################
35+
36+
if __name__ == "__main__":
37+
qu = Queue()
38+
39+
while True:
40+
print("1.Enqueue")
41+
print("2.Dequeue")
42+
print("3.Peek")
43+
print("4.Size")
44+
print("5.Display")
45+
print("6.Quit")
46+
47+
choice = int(input("Enter your choice : "))
48+
49+
if choice == 1:
50+
x=int(input("Enter the element : "))
51+
qu.enqueue(x)
52+
elif choice == 2:
53+
x=qu.dequeue()
54+
print("Element deleted from the queue is : " , x)
55+
elif choice == 3:
56+
print("Element at the front end is " , qu.peek())
57+
elif choice == 4:
58+
print("Size of queue ", qu.size())
59+
elif choice == 5:
60+
qu.display()
61+
elif choice == 6:
62+
break;
63+
else:
64+
print("Wrong choice")
65+
print()
66+
67+
Lines changed: 106 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,106 @@
1+
# Copyright (C) Deepali Srivastava - All Rights Reserved
2+
# This code is part of DSA course available on CourseGalaxy.com
3+
4+
class EmptyQueueError(Exception):
5+
pass
6+
7+
class Node:
8+
9+
def __init__(self,value):
10+
self.info = value
11+
self.link = None
12+
13+
class Queue:
14+
15+
def __init__(self):
16+
self.rear = None
17+
18+
def is_empty(self):
19+
return self.rear == None
20+
21+
def size(self):
22+
if self.is_empty():
23+
return 0
24+
n = 0
25+
p = self.rear.link
26+
while True:
27+
n+=1
28+
p = p.link
29+
if p == self.rear.link:
30+
break
31+
return n
32+
33+
def enqueue(self, data):
34+
temp = Node(data)
35+
36+
if self.is_empty():
37+
self.rear = temp
38+
self.rear.link = self.rear
39+
else:
40+
temp.link = self.rear.link
41+
self.rear.link = temp
42+
self.rear = temp
43+
44+
def dequeue(self):
45+
if self.is_empty():
46+
raise EmptyQueueError("Queue is Empty")
47+
48+
if self.rear.link == self.rear: #List has only one node
49+
temp = self.rear
50+
self.rear = None
51+
else:
52+
temp = self.rear.link
53+
self.rear.link = self.rear.link.link
54+
return temp.info
55+
56+
def peek(self):
57+
if self.is_empty():
58+
raise EmptyQueueError("Queue is Empty")
59+
return self.rear.link.info
60+
61+
def display(self):
62+
if self.is_empty():
63+
print("List is empty")
64+
return
65+
66+
p = self.rear.link
67+
while True:
68+
print(p.info , " ",end='')
69+
p = p.link
70+
if p == self.rear.link:
71+
break
72+
print()
73+
74+
########################################################################
75+
76+
if __name__ == "__main__":
77+
qu = Queue()
78+
79+
while True:
80+
print("1.Enqueue")
81+
print("2.Dequeue")
82+
print("3.Peek")
83+
print("4.Size")
84+
print("5.Display")
85+
print("6.Quit")
86+
87+
choice = int(input("Enter your choice : "))
88+
89+
if choice == 1:
90+
x=int(input("Enter the element : "))
91+
qu.enqueue(x)
92+
elif choice == 2:
93+
x=qu.dequeue()
94+
print("Element deleted from the queue is : " , x)
95+
elif choice == 3:
96+
print("Element at the front end is " , qu.peek())
97+
elif choice == 4:
98+
print("Size of queue ", qu.size())
99+
elif choice == 5:
100+
qu.display()
101+
elif choice == 6:
102+
break;
103+
else:
104+
print("Wrong choice")
105+
print()
106+

0 commit comments

Comments
 (0)