题目
使用栈来实现队列的功能
思路分析
队列的特点是先进先出, 栈的特点是先进后出, 要想用栈来实现先进先出, 我们只要将数据从栈中依次弹出并压入另一个栈, 此时弹出的顺序就是压入的顺序了, 就像队列一样, 如图所示:
要想实现的话, 必须满足以下两点:
- 如果要从两个栈之间导数据, 必须一次性将stackPush中的数据全部压入stackPop中, 否则顺序显然与先进先出不一致
- 当stackPop栈不为空时, 不能向其压入数据, 否则就像插队一样, 不满足先进先出
那么, 现在的问题时, 什么时候将数据压入stackPop栈中呢? 显然, 只要满足以上两点, 什么时候处理数据都可以, 下面提供一个Java代码的简单是实现, 随便看看就行:
閱讀更多 牛牛的編程之路 的文章