LeetCode225 Implemet Stack using Queues Java题解

原创 2015年07月09日 11:58:05

题目:

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();
        
    }
}


stack与queue用法及它们的几层含义

stack的默认存储空间也是deque,其他的声明和queue差不多,可以使用的容器类型包括deque、vector、list...
  • xyb890826
  • xyb890826
  • 2014年09月08日 13:21
  • 790

【LeetCode-面试算法经典-Java实现】【225-Implement Stack using Queues(用队列实现栈操作)】

【225-Implement Stack using Queues(用队列实现栈操作)】【LeetCode-面试算法经典-Java实现】【所有题目目录索引】代码下载【https://github.co...
  • DERRANTCM
  • DERRANTCM
  • 2015年08月29日 06:42
  • 2661

java_集合体系之Stack详解、源码及示例——06

摘要: 本文从Stack的结构图、源码、示例来说明Stack的特性、使用方法。...
  • chenghuaying
  • chenghuaying
  • 2013年12月23日 15:25
  • 3808

java stack的详细实现分析

简介     我们最常用的数据结构之一大概就是stack了。在实际的程序执行,方法调用的过程中都离不开stack。那么,在一个成熟的类库里面,它的实现是怎么样的呢?也许平时我们实践的时候也会尝试...
  • f2006116
  • f2006116
  • 2016年05月11日 16:00
  • 1686

Java集合的Stack、Queue、Map的遍历

一、Map的遍历 import java.util.HashMap; import java.util.Iterator; import java.util.Map; /** * Map的...
  • w46434137
  • w46434137
  • 2013年06月01日 21:53
  • 1455

Java集合之Stack 源码分析

1.简介栈是数据结构中一种很重要的数据结构类型,因为栈的后进先出功能是实际的开发中有很多的应用场景。Java API中提供了栈(Stacck)的实现,简单使用如下所示 import java.util...
  • as02446418
  • as02446418
  • 2015年07月29日 10:43
  • 1035

Java 集合 Stack、Queue、Map插入、移除和遍历

1、Stack 操作 Java代码   // Stack 类表示后进先出(LIFO)的对象堆栈   Stack stack = new Stack();   // 把数据项...
  • wsllittlebird
  • wsllittlebird
  • 2013年02月23日 23:42
  • 2043

Java提高篇(三一)-----Stack

在Java中Stack类表示后进先出(LIFO)的对象堆栈。栈是一种非常常见的数据结构,它采用典型的先进后出的操作方式完成的。每一个栈都包含一个栈顶,每次出栈是将栈顶的数据取出,如下:        ...
  • chenssy
  • chenssy
  • 2014年07月14日 10:11
  • 11371

java内存解析--heap(堆)stack(栈)的理解

学习编程的时候,经常会看到stack这个词,它的中文名字叫做"栈"。 理解这个概念,对于理解程序的运行至关重要。容易混淆的是,这个词其实有三种含义,适用于不同的场合,必须加以区分。 含义一...
  • smartboy_01
  • smartboy_01
  • 2014年04月04日 09:57
  • 3650

栈在Java类库中的顺序表示及实现——Stack

栈是一种后进先出的数据结构。在它之上,主要有三种操作: (1)判断栈是否为空——empty(); (2)在栈顶添加一个元素——push(E); (3)删除并返回栈顶元素——pop()。 在Java类库...
  • l294265421
  • l294265421
  • 2015年05月20日 10:25
  • 1332
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:LeetCode225 Implemet Stack using Queues Java题解
举报原因:
原因补充:

(最多只允许输入30个字)