You are viewing a single comment's thread. Return to all comments →
Python Queue class:
class Queue: def __init__(self): self.inp = [] # add newcomers to enqueue self.out = [] # pop to dequeue, transfer if empty def transfer(self) -> None: """ Transfer elements from input -> output stack to reverse order of elements and maintain FIFO order. Utilising .append() and .pop() which are O(1). """ if not self.out: # if output stack is empty while self.inp: self.out.append(self.inp.pop()) def enqueue(self, x: int) -> None: self.inp.append(x) def dequeue(self) -> int: self.transfer() return self.out.pop() def peek(self) -> int: self.transfer() return self.out[-1]
Main:
if __name__ == "__main__": q = Queue() n = int(input()) # no. of queries for _ in range(n): query = list(map(int, input().split())) if query[0] == 1: # queue() value = query[1] q.enqueue(value) elif query[0] == 2: # dequeue() q.dequeue() elif query[0] == 3: # print() print(q.peek()) # view element at front of queue
`
Seems like cookies are disabled on this browser, please enable them to open this website
Queue using Two Stacks
You are viewing a single comment's thread. Return to all comments →
Python Queue class:
Main:
`