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

232.Implement Queue using Stacks(用栈实现队列)

2015-07-28 14:15 465 查看
题目: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)
代码:
class MyQueue {

    // Push element x to the back of queue.

    Stack <Integer> stack = new Stack();

    Stack <Integer> tmp = new Stack();

    

    public void push(int x) {

        while(!stack.isEmpty()){

            tmp.push(stack.pop());

        }

        stack.push(x);

        while(!tmp.isEmpty()){

            stack.push(tmp.pop());

        }

    }

    // Removes the element from in front of queue.

    public void pop() {

        stack.pop();

    }

    // Get the front element.

    public int peek() {

      return  stack.peek();

    }

    // Return whether the queue is empty.

    public boolean empty() {

      return  stack.isEmpty();

    }

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: