Dequeue operation

The dequeue operation is a little more involved than its enqueue counterpart operation. New elements added to our queue end up in the inbound_stack. Instead of removing elements from the inbound_stack, we shift our attention to the outbound_stack. As we said, elements can be deleted from our queue only through the outbound_stack:

    if not self.outbound_stack:         while self.inbound_stack:             self.outbound_stack.append(self.inbound_stack.pop())     return self.outbound_stack.pop() 

The if statement first checks whether the outbound_stack is empty or not. If it is not empty, we proceed to remove the element at the front of the queue by doing the following:

return self.outbound_stack.pop() 

If the outbound_stack is empty instead, all ...

Get Python Data Structures and Algorithms now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.