用栈实现队列

描述

用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。

思路

实现原理

代码实现

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
public class MyQueue {

private Stack<Integer> stack1;
private Stack<Integer> stack2;

public MyQueue() {
stack1 = new Stack<Integer>();
stack2 = new Stack<Integer>();
}

public void stack2ToStack1() {
while (! stack2.empty()) {
stack1.push(stack2.pop());
}
}
public void push(int element) {
stack2.push(element);
}

public int pop() {
if (stack1.empty() == true) {
this.stack2ToStack1();
}
return stack1.pop();
}

public int top() {
if (stack1.empty() == true) {
this.stack2ToStack1();
}
return stack1.peek();
}

}

原题地址

牛客网:用两个栈实现队列

坚持原创技术分享,您的支持将鼓励我继续创作!