class Queue: def __init__(self): self.size = 0 self.storage = LinkedList() def __len__(self): return self.size def enqueue(self, value): self.storage.add_as_head(value) self.size += 1 def dequeue(self): if self.size > 0: self.size -= 1 removed = self.storage.remove_tail() return removed # **** ARRAY IMPLEMENTATION **** # class Queue: # def __init__(self): # self.size = 0 # self.storage = [] # def __len__(self): # return len(self.storage) # def enqueue(self, value): # self.storage.insert(0, value) # self.size += 1 # def dequeue(self): # if len(self.storage) > 0: # self.size -= 1 # return self.storage.pop() # return None
class Stack: def __init__(self): self.size = 0 self.storage = LinkedList() def __len__(self): return self.size def push(self, value): self.storage.add_as_head(value) self.size += 1 def pop(self): if self.size > 0: self.size -= 1 return self.storage.remove_head() # **** ARRAY IMPLEMENTATION **** # class Stack: # def __init__(self): # self.size = 0 # self.storage = [] # def __len__(self): # return self.size # def push(self, value): # self.size +=1 # self.storage.insert(0, value) # def pop(self): # if len(self.storage) > 0: # value = self.storage[0] # self.storage.pop(0) # self.size -=1 # return value # return None