The Implement Stack using Queues solutions are below.
15 Jun 2024•Easy•C++ / Python / TypeScript
Implement Stack using Queues
C++, Python and TypeScript solutions for Implement Stack using Queues.
Solution files
Python•implement-stack-using-queues/synced-solution.py
from collections import deque
class MyStack:
def __init__(self):
self.queue = deque()
def push(self, x: int) -> None:
self.queue.append(x)
for _ in range(len(self.queue) - 1):
self.queue.append(self.queue.popleft())
def pop(self) -> int:
return self.queue.popleft()
def top(self) -> int:
return self.queue[0]
def empty(self) -> bool:
return len(self.queue) == 0
C++•implement-stack-using-queues/synced-solution.cpp
class MyStack {
private:
queue<int> q;
public:
MyStack() {}
void push(int x) {
q.push(x);
for (int i = 0; i < q.size() - 1; i++) {
q.push(q.front());
q.pop();
}
}
int pop() {
int top = q.front();
q.pop();
return top;
}
int top() {
return q.front();
}
bool empty() {
return q.empty();
}
};
TypeScript•implement-stack-using-queues/synced-solution.ts
class MyStack {
private queue: number[] = [];
push(x: number): void {
this.queue.push(x);
for (let i = 0; i < this.queue.length - 1; i++) {
this.queue.push(this.queue.shift()!);
}
}
pop(): number {
return this.queue.shift()!;
}
top(): number {
return this.queue[0];
}
empty(): boolean {
return this.queue.length === 0;
}
}