232. Implement Queue using Stacks (Easy)

来源:互联网 发布:单片机433m超再生模块 编辑:程序博客网 时间:2024/06/18 14:04

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();        }    }
0 0
原创粉丝点击