This commit is contained in:
Mari Wahl 2014-08-20 16:40:57 -04:00
parent aa5010594e
commit 7b9e953f5a
194 changed files with 28 additions and 34 deletions

View file

@ -0,0 +1,61 @@
#!/usr/bin/python3
# mari von steinkirch @2013
# steinkirch at gmail
class Node(object):
def __init__(self, value):
self.value = value
self.next = None
class LinkedQueue(object):
''' Queue acts as a container for nodes (objects) that are inserted and removed according FIFO'''
def __init__(self):
self.front = None
self.back = None
def isEmpty(self):
return bool(self.front)
def dequeue(self):
if self.front:
value = self.front.value
self.front = self.front.next
return value
raise Exception('Queue is empty, cannot dequeue.')
def enqueue(self, value):
node = Node(value)
if self.front:
self.back.next = node
self.back = node
else:
self.front = node
self.back = node
return True
def size(self):
node = self.front
num_nodes = 1
while node.next:
num_nodes += 1
node = node.next
return num_nodes
def peek(self):
return self.front.value
def main():
queue = LinkedQueue()
queue.enqueue(1)
queue.enqueue(2)
queue.enqueue(3)
print(queue.size())
print(queue.peek())
print(queue.dequeue())
print(queue.peek())
if __name__ == '__main__':
main()