首页 > 编程语言 > 详细

LeetCode225 Implemet Stack using Queues Java题解

时间:2015-07-09 14:40:06      阅读:393      评论:0      收藏:0      [点我收藏+]

题目:

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 emptyoperations 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).

解答:

用队列实现栈,队列是先进先出,栈是先进后出,所以每一个队列元素进的时候,我们把这个元素后面的所有队列的元素重新出队列再进队列,这样就保证了最后面进入队列的元素可以最先出队列

代码:

class MyStack {
  
	Queue<Integer> queue=new LinkedList<Integer>();
    public void push(int x) {
    	queue.offer(x);
    	int i=queue.size()-1;
    	while(i>0)
    	{
    		queue.offer(queue.poll());
    		i--;
    	}
        
    }


    public void pop() {
        queue.poll();
    }


    public int top() {
        return queue.peek();
    }

   
    public boolean empty() {
    	return queue.isEmpty();
        
    }
}


版权声明:本文为博主原创文章,未经博主允许不得转载。

LeetCode225 Implemet Stack using Queues Java题解

原文:http://blog.csdn.net/u012249528/article/details/46815071

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!