In [2]:
class Node:
def __init__(self, data = None, next = None):
self.data = data
self.next = next
In [6]:
class Queue:
def __init__(self):
self.head = None
self.tail = None
self.length = 0
def enqueue(self, data):
node = Node(data)
if not self.isEmpty():
self.tail.next = node
self.tail = node
else:
self.head = self.tail = node
self.length = self.length + 1
def poll(self):
if self.isEmpty():
return None
else:
self.length = self.length - 1
data = self.head.data
self.head = self.head.next
if not self.head:
self.tail = None
return data
def isEmpty(self):
return self.length == 0
def size(self):
return self.length
In [7]:
queue = Queue()
queue.enqueue("first")
queue.enqueue("second")
queue.enqueue("third")
while not queue.isEmpty():
print(queue.poll())
In [ ]: