class Stack: def __init__(self): self.size = 0 #self.storage = [] ##array code commented out self.storage = LinkedList() def __len__(self): #return len(self.storage) return self.size def push(self, value): #return self.storage.append(value) self.storage.add_to_end( value) ##from ll functions add to end of stack. LIFO self.size += 1 #size of in +1 def pop(self): #if len(self.storage) == 0: #return None #else: #return self.storage.pop() if not self.storage.head: return None else: self.size -= 1 #remove 1 from in return self.storage.remove_at_end( ) #rmeove last input from end of stack. LIFO
class Queue: def __init__(self): self.size = 0 #self.storage = [] ##array code commented out self.storage = LinkedList() def __len__(self): #return len(self.storage) return self.size def enqueue(self, value): #self.storage.append(value) self.storage.add_to_end(value) #adds to back of que self.size +=1 def dequeue(self): #if len(self.storage) != 0: #return self.storage.pop(0) if not self.storage.head: return None else: self.size -=1 return self.storage.remove_from_head() #takes from front of que