Skip to content

Instantly share code, notes, and snippets.

@AO8
Last active January 22, 2018 21:19
Show Gist options
  • Select an option

  • Save AO8/f187609fe4b7dd1d47ce4d8ee3628554 to your computer and use it in GitHub Desktop.

Select an option

Save AO8/f187609fe4b7dd1d47ce4d8ee3628554 to your computer and use it in GitHub Desktop.
Quick recipes for implementing Stacks, Queues, and Linked Lists in Python.
# with inspiration from Kojin @ Harvard
class Stack:
"""for creating a LIFO data structure"""
def __init__(self):
self.items = []
def size(self):
return len(self.items)
def is_empty(self):
return self.size() == 0
def push(self, item):
return self.items.append(item)
def pop(self):
if self.is_empty():
return None
else:
return self.items.pop()
def peek(self):
if self.is_empty():
return None
else:
return self.items[-1]
class Queue:
"""for creating a FIFO data structure"""
def __init__(self):
self.items = []
def size(self):
return len(self.items)
def is_empty(self):
return self.size() == 0
def enqueue(self, item):
return self.items.insert(0, item)
def dequeue(self):
if self.is_empty():
return None
else:
return self.items.pop()
class Node:
"""for creating and traversing nodes in a Linked List"""
def __init__(self, val):
self.val = val
self.next = None
def traverse(self):
node = self
while node != None:
print(node.val)
node = node.next
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment