关闭

leetcode-implement-queue-using-stacks

183人阅读 评论(0) 收藏 举报
分类:

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;
    }
}
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:86953次
    • 积分:4602
    • 等级:
    • 排名:第7075名
    • 原创:374篇
    • 转载:7篇
    • 译文:0篇
    • 评论:5条
    最新评论