美文网首页程序员
用栈实现队列-leetcode

用栈实现队列-leetcode

作者: 胡子先生丶 | 来源:发表于2018-11-30 18:25 被阅读4次
    题目描述

    使用栈实现队列的下列操作:

    push(x) -- 将一个元素放入队列的尾部。
    pop() -- 从队列首部移除元素。
    peek() -- 返回队列首部的元素。
    empty() -- 返回队列是否为空。

    :先进后出;
    队列:先进先出;

    思路:
    1.使用两个栈stack 、queue ;
    2.将数据push到stack中;
    3.queue 进行出队,则是stack中出栈,如果queue无数据则stack就行出栈,如果queue 有数据就进行出栈;

     Stack<int> stack = new Stack<int>();
            Stack<int> queue = new Stack<int>();
    
            public MyQueue()
            {
            }
    
            public void Push(int x)
            {
                stack.push(x);
            }
    
            public int Pop()
            {
                if (queue.isEmpty())
                {
                    while (stack.top != null)
                    {
                        queue.push(stack.peek());
                        stack.pop();
                    }                
                }
                int topV = queue.peek();
                queue.pop();
                return topV;
            }
    
            /** Get the front element. */
            public int Peek()
            {
                if (queue.isEmpty())
                {
                    while (stack.top != null)
                    {
                        queue.push(stack.peek());
                        stack.pop();
                    }
                }
                return queue.peek();
            }
    
            /** Returns whether the queue is empty. */
            public bool Empty()
            {
                if (queue.isEmpty())
                {
                    while (stack.top != null)
                    {
                        queue.push(stack.peek());
                        stack.pop();
                    }
                }
                if (queue.top == null) return false;
                return true;
            }
    
    

    相关文章

      网友评论

        本文标题:用栈实现队列-leetcode

        本文链接:https://www.haomeiwen.com/subject/qbtkcqtx.html