您的位置:首页 > 产品设计 > UI/UE

leetcode-implement-queue-using-stacks

2015-11-20 20:02 302 查看
leetcode 上很简单的用两个堆栈来模拟队列

https://leetcode.com/problems/implement-queue-using-stacks/

import java.util.LinkedList;
class MyQueue {
/*
* myqueue use two tack to simulate queue ,use push() operation only on stack1.use pop() or get() operation only on stack2
*/
private LinkedList<Integer> s1=new LinkedList<Integer>();
private LinkedList<Integer> s2=new LinkedList<Integer>();

// Push element x to the back of queue.
public void push(int x) {
s1.push(x);

}

// Removes the element from in front of queue.
public void pop() {
if(s2.size()>0)
s2.pop();
else if(s1.size()>0)
{
while(s1.size()>0)//remove element in stack1 to stack2 until stack1 is empty
{
s2.push(s1.pop());
}
s2.pop();
}
else
{
//queue is empty do nothing!
}
}

// Get the front element.
public int peek() {
int temp;
if(s2.size()>0)
{
temp=s2.peek();
return temp;
}
else if(s1.size()>0)
{
while(s1.size()>0)
{
s2.push(s1.pop());
}
temp=s2.peek();
return temp;
}
else
{
//在queue为空的情况下
return 0;//加句话就是为了编译通过 java编译器没有else不让通过
}

}

// Return whether the queue is empty.
public boolean empty() {
if(s1.size()==0&&s2.size()==0)
return true;
else
return false;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: