parent
d6d62cded8
commit
4b762c3060
@ -0,0 +1,51 @@
|
||||
package 栈相关.q232_用栈实现队列.f1;
|
||||
|
||||
import java.util.Stack;
|
||||
|
||||
/**
|
||||
* 双栈 入队o(n) 出队o(1)
|
||||
*/
|
||||
class MyQueue {
|
||||
|
||||
private Stack<Integer> s1 = new Stack<>();
|
||||
private Stack<Integer> s2 = new Stack<>();
|
||||
private Integer front;
|
||||
|
||||
/** Initialize your data structure here. */
|
||||
public MyQueue() {
|
||||
|
||||
}
|
||||
|
||||
/** Push element x to the back of queue. */
|
||||
public void push(int x) {
|
||||
if (s1.empty()){
|
||||
front = x;
|
||||
}
|
||||
while (!s1.isEmpty()){
|
||||
s2.push(s1.pop());
|
||||
}
|
||||
s2.push(x);
|
||||
while (!s2.isEmpty()){
|
||||
s1.push(s2.pop());
|
||||
}
|
||||
}
|
||||
|
||||
/** Removes the element from in front of queue and returns that element. */
|
||||
public int pop() {
|
||||
int value = s1.pop();
|
||||
if (!s1.empty()){
|
||||
front = s1.peek();
|
||||
}
|
||||
return value;
|
||||
}
|
||||
|
||||
/** Get the front element. */
|
||||
public int peek() {
|
||||
return front;
|
||||
}
|
||||
|
||||
/** Returns whether the queue is empty. */
|
||||
public boolean empty() {
|
||||
return s1.isEmpty();
|
||||
}
|
||||
}
|
Loading…
Reference in new issue