用栈实现队列oj
Posted ohana!
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用栈实现队列oj相关的知识,希望对你有一定的参考价值。
题目内容:
解题思路:
- 栈的特性 ----(后进先出) 队列的特性 ---- (先入先出)
- 用两个栈实现,s1压栈,s2压栈并出栈(实现先入先出的特性)
- 当s2空时,将s1的元素全部压入
解题代码:
class MyQueue {
Stack<Integer> s1;
Stack<Integer> s2;
public MyQueue() {
s1 = new Stack<>();
s2 = new Stack<>();
}
public void push(int x) {
s1.push(x);
}
public int pop() {
if(s2.empty()){
while(!s1.empty()){
s2.push(s1.pop());
}
}
return s2.pop();
}
public int peek() {
if(s2.empty()){
while(!s1.empty()){
s2.push(s1.pop());
}
}
return s2.peek();
}
public boolean empty() {
/*
if(s1.size() == 0 && s2.size() == 0){
return true;
}else{
return false;
}
*/
if(s1.empty() && s2.empty()){
return true;
}else{
return false;
}
}
}
以上是关于用栈实现队列oj的主要内容,如果未能解决你的问题,请参考以下文章