用栈实现队列和用队列实现栈的思路

Stack<==>Queue。使用栈实现队列的功能以及使用队列实现栈的功能

首先栈的原理是先入的后出,也就是First In Last Out(FILO)。队列的原理是先入先出 First In First Out(FIFO)

1.栈实现队列

原理:使用两个栈,一个用来进一个用来出。

push操作时候,往输入的栈push元素

pop操作的时候,先判断输出的栈有没有元素,如果没有就把输入栈里面元素依次后入先出的顺序给到输出栈,最后取出输出栈的元素。



2.队列实现栈

方法1:用一个辅助队列,每当有元素push进“栈”,则需要把队列的front位置给它空出来,方便后面直接pop()和top(),因此我们可以做两次搬家操作,来获得一个新的队列:


方法2:在每次push()操作时,我们直接从队列头开始,把每一个元素复制到队尾,然后删除队头的这个元素,这样push进来的新元素就到了front的位置:


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 〖提要〗愿景、使命、价值观,也许,会有很多人认为这些是虚无缥缈的东西,只是口号而已,那也许是因为制定的愿景、使命、...
    陈律随笔阅读 547评论 0 0
  • 01 不知道从什么时候起,阅读变成了一种时尚。懂阅读的人享受乐趣,不懂阅读的人来凑下热闹,不过热闹过后,一切照旧。...
    恒亮阅读 708评论 1 7
  • 昨天的文章中说到,如果想提升自己的学习效率,首先都选对书。 选的对,才能学的到。 选对书,然后呢。 我们想要学习的...
    无梦为安Ph阅读 697评论 0 0
  • 我们总是期盼被爱,喜欢被别人温暖的感觉,是否想过自己值得被爱的理由?首先只有父母是无条件爱自己的,不要钻牛角尖说也...
    Ownery阅读 201评论 0 1