zoukankan      html  css  js  c++  java
  • 用两个栈实现队列

    栈的特点是后进先出,即最后别呀如栈的元素会第一个被弹出(pop)。

    队列是另外一个很重要的数据结构。和栈不同的是,队列的特点是先进先出,即第一个进入队列的元素将会第一个出来。

    题目:用两个栈是新啊一个队列。队列的声明那个如下,请实现它的两个函数apeendTail和deleteHead,分别完成在对垒尾部插入节点和在队列头部删除节点的功能。

    解题思路:一个队列包含了两个栈stack1和stack2,因此这道题的意图是要求我们操作这两个“先进后出”的栈实现一个“先进先出”的队列CQueue.

    在stack1中按顺序压入“a,b,c”,把stack1中的元素逐个弹出并压入到stack2中“c,b,a”.这样逐个弹出就可以了。

    总结删除一个元素的步骤:当stack2中不为空时,在stack2中的栈顶元素是最先进入队列的元素,可以弹出。如果stack2为空时,我们把stack1中的元素逐个弹出并压入stack2。由于先进入队列的元素被压到stack1的地段,经过弹出和压入之后就处于stack2的顶端了,又可以直接弹出。

    过程如下图所示

  • 相关阅读:
    hbase
    pig
    flume
    sqoop
    eclipse 提交作业到JobTracker Hadoop的数据类型要求必须实现Writable接口
    hadoop 8步走
    ssh原理
    MapReduce基础
    Arduino数字贴片磁感应传感器(收藏篇)
    去掉input回车自动提交
  • 原文地址:https://www.cnblogs.com/zhibei/p/9203105.html
Copyright © 2011-2022 走看看