下面是java的实现:
在Enqueue操作时,我们可以直接将元素压入堆栈。
在出队操作期间,
下面是经过测试的程序。
public class QueueUsingSingleStack {
Stack<Integer> stack = new Stack<>();
private void enqueue(int i) {
stack.push(i);
}
private int dequeue() throws Exception {
if (stack.size() == 0)
throw new Exception("Queue is Empty");
if (stack.size() == 1)
return stack.pop();
int data = stack.pop();
int retVal = dequeue();
stack.push(data);
return retVal;
}
public static void main(String[] args) throws Exception {
QueueUsingSingleStack queue = new QueueUsingSingleStack();
queue.enqueue(10);
queue.enqueue(20);
queue.enqueue(30);
queue.enqueue(40);
System.out.println(queue.dequeue());
System.out.println(queue.dequeue());
System.out.println(queue.dequeue());
System.out.println(queue.dequeue());
}
}
Run Code Online (Sandbox Code Playgroud)