[LeetCode] 225. Implement Stack using Queues Java

Posted BrookLearnData

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[LeetCode] 225. Implement Stack using Queues Java相关的知识,希望对你有一定的参考价值。

题目:

Implement the following operations of a stack using queues.

  • push(x) -- Push element x onto stack.
  • pop() -- Removes the element on top of the stack.
  • top() -- Get the top element.
  • empty() -- Return whether the stack is empty.

Notes:

  • You must use only standard operations of a queue -- which means only push to backpeek/pop from frontsize, and is empty operations are valid.
  • Depending on your language, queue may not be supported natively. You may simulate a queue by using a list or deque (double-ended queue), as long as you use only standard operations of a queue.
  • You may assume that all operations are valid (for example, no pop or top operations will be called on an empty stack).

 

题意及分析:用标准的queue实现stack。这里关键就是添加完成时,刚添加的点要在queue最前面,将queue的前面的点依次取出并添加到queue尾就可以实现这个stack添加功能。

代码: 

public class MyStack {

    Queue<Integer> queue ;
    /** Initialize your data structure here. */
    public MyStack() {
        queue = new LinkedList<Integer>();
    }
    
    /** Push element x onto stack. */
    public void push(int x) {
        queue.add(x);
        for(int i=0;i<queue.size()-1;i++){
        	queue.add(queue.poll());
        }
    }
    
    /** Removes the element on top of the stack and returns that element. */
    public int pop() {
    	return queue.poll();
    }
    
    /** Get the top element. */
    public int top() {
        return queue.peek();
    }
    
    /** Returns whether the stack is empty. */
    public boolean empty() {
        return queue.isEmpty();
    }
}

/**
 * Your MyStack object will be instantiated and called as such:
 * MyStack obj = new MyStack();
 * obj.push(x);
 * int param_2 = obj.pop();
 * int param_3 = obj.top();
 * boolean param_4 = obj.empty();
 */

 

  

 

以上是关于[LeetCode] 225. Implement Stack using Queues Java的主要内容,如果未能解决你的问题,请参考以下文章

leetcode-225-用队列实现栈

LeetCode OJ 225Implement Stack using Queues

[LeetCode] 225. 用队列实现栈

LeetCode 225 Implement Stack using Queues

[leetcode] 225. Implement Stack using Queues

leetcode?python 225. Implement Stack using Queues