解析如何用两个栈来实现队列的方法

 更新时间:2013年06月04日 17:37:51   作者:  
本篇文章是对如何用两个栈实现队列的方法进行了详细的分析介绍,需要的朋友参考下

题目:如何用两个栈来实现队列,即实现队列的两个方法——appendTail(插入)和deleteHead(删除)。
分析:核心思想是一个栈正向存储,另外一个栈逆向存储。正向存储的栈用来插入,逆向存储的栈用来删除。
实现的Java代码如下:

复制代码 代码如下:

import java.util.Stack;
public class QueneWithTwoStacks<E> {
 private Stack<E> stack1;
 private Stack<E> stack2;
 public void appendTail(E e) {
  stack1.push(e);
 }
 public E deleteHead() throws Exception {
  if (stack2.size() <= 0) {
   while (!stack1.isEmpty()) {
    stack2.push(stack1.pop());
   }
  }
  if (stack2.size() == 0) {
   throw new Exception("Queue is empty!");
  }
  return stack2.pop();
 }
}

 

相关文章

  • IDEA创建自定义模板图文教程

    IDEA创建自定义模板图文教程

    我们每次在使用IntelliJ IDEA 时总会有一些文件是一直被创建的,今天我们就来学习一下IntelliJ IDEA 的自定义模板功能,文中有详细的图文介绍,需要的朋友可以参考下
    2021-05-05
  • SpringMVC结合模板模式实现MyBatisPlus传递嵌套JSON数据

    SpringMVC结合模板模式实现MyBatisPlus传递嵌套JSON数据

    我们经常会遇到需要传递对象的场景,有时候,我们需要将一个对象的数据传递给另一个对象进行处理,但是又不希望直接暴露对象的内部结构和实现细节,所以本文给大家介绍了SpringMVC结合模板模式实现MyBatisPlus传递嵌套JSON数据,需要的朋友可以参考下
    2024-03-03
  • springboot项目读取resources目录下的文件的9种方式

    springboot项目读取resources目录下的文件的9种方式

    本文主要介绍了springboot项目读取resources目录下的文件的9种方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-04-04
  • MapReduce实现TopN效果示例解析

    MapReduce实现TopN效果示例解析

    这篇文章主要为大家介绍了MapReduce实现TopN效果示例解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-07-07
  • Java获取Cookie里的指定值的实现方法

    Java获取Cookie里的指定值的实现方法

    在Java中,我们经常需要从HTTP请求中获取Cookie,并从中提取特定的值,下面我们将介绍如何通过Java代码获取Cookie中的指定值,文章通过代码示例介绍的非常详细,需要的朋友可以参考下
    2024-09-09
  • Java中一维二维数组的静态和动态初始化

    Java中一维二维数组的静态和动态初始化

    今天通过本文给大家分享Java中的数组,包括一维数组和二维数组的静态初始化和动态初始化问题,感兴趣的朋友一起看看吧
    2017-10-10
  • java RocketMQ快速入门基础知识

    java RocketMQ快速入门基础知识

    这篇文章主要介绍了java RocketMQ快速入门基础知识,所以RocketMQ是站在巨人的肩膀上(kafka),又对其进行了优化让其更满足互联网公司的特点。它是纯Java开发,具有高吞吐量、高可用性、适合大规模分布式系统应用的特点。,需要的朋友可以参考下
    2019-06-06
  • 关于Java大整数运算之BigInteger类

    关于Java大整数运算之BigInteger类

    这篇文章主要介绍了关于Java大整数运算之BigInteger类,BigInteger提供高精度整型数据类型及相关操作,所有操作中,都以二进制补码形式表示,需要的朋友可以参考下
    2023-05-05
  • java基础类型源码解析之多角度讲HashMap

    java基础类型源码解析之多角度讲HashMap

    这篇文章主要给大家介绍了关于java基础类型源码解析之HashMap的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用java基具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-07-07
  • springboot实现拦截器的3种方式及异步执行的思考

    springboot实现拦截器的3种方式及异步执行的思考

    实际项目中,我们经常需要输出请求参数,响应结果,方法耗时,统一的权限校验等。本文首先为大家介绍 HTTP 请求中三种常见的拦截实现,并且比较一下其中的差异。感兴趣的可以了解一下
    2021-07-07

最新评论