Last active
January 22, 2018 21:19
-
-
Save AO8/f187609fe4b7dd1d47ce4d8ee3628554 to your computer and use it in GitHub Desktop.
Quick recipes for implementing Stacks, Queues, and Linked Lists in Python.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # 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