码迷,mamicode.com
首页 > 编程语言 > 详细

LeetCode225 Implemet Stack using Queues Java题解

时间:2015-07-09 14:41:27      阅读:135      评论:0      收藏:0      [点我收藏+]

标签:stack   queue   implemet stack   leetcode   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 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题解

标签:stack   queue   implemet stack   leetcode   java   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!