用两个栈实现一个队列

思路:

  假设存在两个栈stack1、stack2,可以这样认为:

    stack2中保存的为【队列的前部分元素】,可以认为 其栈顶值 = 队列头部值。

    stack1中的元素为【未经转换的队列后部分元素】,相当于buffer一样的存在,它其实就是队列中后部分元素逆序的结果。因此需要将其元素全部投入到stack2中,这样完成翻转过程。

画图如下:

|  <----      队列        ----> |
|  <- 栈2 ->   |  <- 栈1 ->     |
| 和队列顺序一致 |  和队列顺序相反  |

猜你喜欢

转载自www.cnblogs.com/ccXgc/p/8978580.html
今日推荐