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

2016-02-19 09:20 8 1 收藏

下面请跟着图老师小编一起来了解下解析如何用两个栈来实现队列的方法,精心挑选的内容希望大家喜欢,不要忘记点个赞哦!

【 tulaoshi.com - 编程语言 】

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

import java.util.Stack;
public class QueneWithTwoStacksE {
 private StackE stack1;
 private StackE 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();
 }
}

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

来源:http://www.tulaoshi.com/n/20160219/1590404.html

延伸阅读
1.借助中间量交换 int x = 10; int y = 20; int temp = x; x = y; y = temp; 此种方法可以将中间量看成空杯,即把temp看成是空杯, 把x看成是装有白酒的杯子,把y看成是装有红酒的杯子 int temp = x; 把白酒倒到空杯中,此时temp装有白酒,x变成空杯 x = y; 把y中的红酒倒到x空杯中,此时x装有红酒,y变成空杯 y = temp; 把白酒倒...
标签: Web开发
打包下载 自己写了一个很简单的jquery插件,在页面中调用其中的函数就可实现. 插件源代码(listtolist.js): 代码如下: /** fromid:源list的id. toid:目标list的id. moveOrAppend参数("move"或者是"append"): move -- 源list中选中的option会删除.源list中选中的option移动到目标list中,若目标list中已存在则该option不添加. append --...
标签: PHP
一、Web服务器安全 PHP 其实不过是Web服务器的一个模块功能,所以首先要保证Web服务器的安全。当然Web服务器要安全又必须是先保证系统安全,这样就扯远了,无穷无尽。PHP可以和各种Web服务器结合,这里也只讨论Apache。非常建议以chroot方式安装启动Apache,这样即使Apache和PHP及其脚本出现 漏洞 ,受影响的也只有这个...
标签: PHP
搞了一天还是这个好( pear ,XML_parse, XML_RSS) PHP PEAR就提供一个 RSS 解析类,方便从用户提供的RSS中,获得相应的信息。     需求    下载XML_RSS: http://pear.php.net/package/XML_RSS    XML_Parser      http://pear.php.net/package/XML_P...
两个世界2 运行序列号 进入游戏后提示输入序列号,可用下面一组: JR2W-FY5U-R34N-YZU4 更多相关内容请关注:两个世界2专区 两个世界2 2小时游玩评价 玩了2个小时~谈谈自己的...

经验教程

749

收藏

81
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部