算法设计系列-02

题目

使用栈来实现队列的功能

思路分析

队列的特点是先进先出, 栈的特点是先进后出, 要想用栈来实现先进先出, 我们只要将数据从栈中依次弹出并压入另一个栈, 此时弹出的顺序就是压入的顺序了, 就像队列一样, 如图所示:

算法设计系列-02

要想实现的话, 必须满足以下两点:

  1. 如果要从两个栈之间导数据, 必须一次性将stackPush中的数据全部压入stackPop中, 否则顺序显然与先进先出不一致
  2. 当stackPop栈不为空时, 不能向其压入数据, 否则就像插队一样, 不满足先进先出

那么, 现在的问题时, 什么时候将数据压入stackPop栈中呢? 显然, 只要满足以上两点, 什么时候处理数据都可以, 下面提供一个Java代码的简单是实现, 随便看看就行:

算法设计系列-02


分享到:


相關文章: