def top(self): #returns the top element #complexity O(1) x = Option() if self.__elements.emptyList(): x.setOp(False) else: x.setEl(self.__elements.getEl(0)) return x #returns empty option if list is empty
def dequeue(self): #deletes the last elemet in the fill #complexity O(n) if empty is empty else complexity O(1) if self.__empty.emptyList(): if self.__fill.emptyList(): raise Exception("Queue is Empty") self.__empty = self.__fill.reverse(Nil()) #takes linear time self.__fill = Nil() op = Option() if self.isEmpty(): op.setOp(False) else: op.setEl(self.__empty.getEl(0)) self.__empty.deletFirst() return op #returns the value