-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathqueue linkedlist impl.py
95 lines (72 loc) · 1.88 KB
/
queue linkedlist impl.py
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
#### linked list implementation of Queue
class Node:
def __init__(self,data):
self.info=data
self.link=None
class queue:
def __init__(self):
self.front=None
self.rear=None
self.count=0
def enqueue(self,data):
temp=Node(data)
if self.is_empty(): ##insertion in empty list
self.front=temp
self.rear=temp
self.count+=1
return
else: ##insertion at end
self.rear.link=temp #last elements link points to temp
self.rear=temp
self.count+=1
def dequeue(self):
if self.is_empty():
print("Queue is empty cant perform dequeue")
return
else:
deleted_item=self.front.info ##to return this
self.front=self.front.link
self.count-=1
return deleted_item
def size(self):
return self.count
def is_empty(self):
return self.count==0
def peek(self):
return self.start.info
def display(self):
p=self.front
while p is not None:
print(p.info,end="|")
p=p.link
##########################################
q=queue()
x= """
1.Enqueue
2.Dequeue
3.size
4.Empty(t/f)
5.peek
6.display
7.quit
"""
while True:
print(x)
o=int(input("Enter option:"))
if o==1:
data=input("Input element:")
q.enqueue(data)
elif o==2:
print(q.dequeue())
elif o==3:
print(q.size())
elif o==4:
print(q.is_empty())
elif o==5:
print(q.peek())
elif o==6:
q.display()
elif o==7:
break
else:
print("\n wrong input \n")