mirror of
https://github.com/donnemartin/interactive-coding-challenges
synced 2026-01-08 10:28:03 +00:00
Restructured packages.
This commit is contained in:
36
stacks_queues/queue_list/queue_list.py
Normal file
36
stacks_queues/queue_list/queue_list.py
Normal file
@@ -0,0 +1,36 @@
|
||||
# Need to avoid naming this queue.py as it
|
||||
# will conflict with IPython Notebook
|
||||
|
||||
class Node(object):
|
||||
def __init__(self, data):
|
||||
self.data = data
|
||||
self.next = None
|
||||
|
||||
class Queue(object):
|
||||
def __init__(self):
|
||||
self.first = None
|
||||
self.last = None
|
||||
|
||||
def enqueue(self, data):
|
||||
node = Node(data)
|
||||
if self.first is None and self.last is None:
|
||||
self.first = node
|
||||
self.last = node
|
||||
else:
|
||||
self.last.next = node
|
||||
self.last = node
|
||||
|
||||
def dequeue(self):
|
||||
# Empty list
|
||||
if self.first is None and self.last is None:
|
||||
return None
|
||||
# Remove only element from a one element list
|
||||
elif self.first == self.last:
|
||||
data = self.first.data
|
||||
self.first = None
|
||||
self.last = None
|
||||
return data
|
||||
else:
|
||||
data = self.first.data
|
||||
self.first = self.first.next
|
||||
return data
|
||||
Reference in New Issue
Block a user