-
Notifications
You must be signed in to change notification settings - Fork 153
Expand file tree
/
Copy pathQueue.py
More file actions
25 lines (21 loc) · 677 Bytes
/
Queue.py
File metadata and controls
25 lines (21 loc) · 677 Bytes
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
from .. chapter_02_linked_lists import SinglyLinkedNode as sln
class Queue:
def __init__(self):
self.first = None
self.last = None
def enqueue(self, value):
new = sln.SinglyLinkedNode(value, None)
if self.is_empty():
self.first = new
self.last = self.first
else:
self.last.next_node = new
self.last = self.last.next_node
def dequeue(self):
if self.first is None:
return self.first
to_be_returned = self.first
self.first = self.first.next_node
return to_be_returned.value
def is_empty(self):
return self.first is None