-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathqueue.py
More file actions
66 lines (63 loc) · 1.83 KB
/
Copy pathqueue.py
File metadata and controls
66 lines (63 loc) · 1.83 KB
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
#Lesson no 20 : QUEUE
# implementing queue using linkedlist
class Node:
def __init__(self,value=None):
self.value=value
self.next=None
def __str__(self):
return str(self.value)
class Linkedlist:
def __init__(self):
self.head=None
self.tail=None
def __iter__(self):
currnode=self.head
while currnode:
yield currnode
currnode=currnode.next
class queue:
def __init__(self):
self.linkedlist=Linkedlist()
def __str__(self):
values=[str(x) for x in self.linkedlist]
return ' '.join(values)
def enqueue(self,value):
newnode=Node(value)
if self.linkedlist.head==None:
self.linkedlist.head=newnode
self.linkedlist.tail=newnode
else:
self.linkedlist.tail.next=newnode
self.linkedlist.tail=newnode
return 'element inserted successfully'
def isempty(self):
if self.linkedlist.head==None:
return True
else:
False
def dequeue(self):
if self.isempty():
print('there is no element in this list')
else:
tempnode=self.linkedlist.head
if self.linkedlist.head==self.linkedlist.tail:
self.linkedlist.head=None
self.linkedlist.tail=None
else:
self.linkedlist.head=self.linkedlist.head.next
return tempnode
def peek(self):
if self.isempty():
print('there is no element in this list')
else:
return self.linkedlist.head
def delete(self):
self.linkedlist.head=None
self.linkedlist.tail=None
customqueue=queue()
customqueue.enqueue(1)
customqueue.enqueue(2)
#print(customqueue.dequeue())
#print(customqueue.peek())
#customqueue.delete()
print(customqueue)