class Stack: def __init__(self): self.size = 0 self.storage = LinkedList() def __len__(self): return self.size def push(self, value): self.storage.add_head(value) self.size += 1 # once you "append", you have to update the count def pop(self): if len(self) == 0: return self.size -= 1 return self.storage.remove_head()
class Queue: def __init__(self): self.size = 0 self.storage = LinkedList() def __len__(self): return self.size def enqueue(self, value): self.storage.add_head(value) self.size += 1 def dequeue(self): if self.size == 0: return None else: self.size -= 1 return self.storage.remove_tail()