admin管理员组

文章数量:1636922

Implement the following operations of a queue using stacks.

push(x) – Push element x to the back of queue. pop() – Removes the
element from in front of queue. peek() – Get the front element.
empty() – Return whether the queue is empty. Notes: You must use only
standard operations of a stack – which means only push to top,
peek/pop from top, size, and is empty operations are valid. Depending
on your language, stack may not be supported natively. You may
simulate a stack by using a list or deque (double-ended queue), as
long as you use only standard operations of a stack. You may assume
that all operations are valid (for example, no pop or peek operations
will be called on an empty queue).

用栈实现队列,需要两个栈,代码如下:

Solution:

Java:

    class MyQueue {

        Stack<Integer> stack1 = new Stack<>();
        Stack<Integer> stack2 = new Stack<>();

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

        // Removes the element from in front of queue.
        public void pop() {
            if(stack1.isEmpty()) return ;
            stack2.clear();
            while(stack1.size() != 1) {
                stack2.push(stack1.pop());
            }
            stack1.pop();
            while(!stack2.isEmpty()) {
                stack1.push(stack2.pop());
            }
        }

        // Get the front element.
        public int peek() {
            if(!stack1.isEmpty()) {
                stack2.clear();
                while(stack1.size() != 1) {
                    stack2.push(stack1.pop());
                }
                int result = stack1.pop();
                stack2.push(result);
                while(!stack2.isEmpty()) {
                    stack1.push(stack2.pop());
                }
                return result;
            }
            return -1;
        }

        // Return whether the queue is empty.
        public boolean empty() {
            return stack1.isEmpty();
        }
    }

本文标签: implementQueueEasyStacks