class Stack: def __init__(self): self.size = 0 self.storage = LinkedList() def __len__(self): if self.size >= 0: return self.size else: return 0 def push(self, value): self.storage.add_to(value) self.size += 1 def pop(self): if self.size > 0: value = self.storage.remove_from_tail() self.size -= 1 return value
class Queue: def __init__(self): self.size = 0 self.storage = LinkedList() def __len__(self): if self.size >= 0: return self.size else: return 0 def enqueue(self, value): self.storage.add_to(value) self.size += 1 def dequeue(self): if self.size > 0: value = self.storage.remove_from_head() self.size -= 1 return value