2.使用两个栈实现一个队列。
思想:栈是先进后出的数据结构,队列是先进先出的数据结构,要用两个栈实现一个队列,就必须让两个栈实现元素的先进先出。入栈时,让需要入栈的元素全都进入S1栈中,出栈时,再把S1中的元素依次出栈,入S2栈,再把S2的栈顶元素弹出。
如下图所示:
当然,这个过程过于繁琐,有可以优化的方法
如下图所示:
代码实现:
2.使用两个栈实现一个队列。
思想:栈是先进后出的数据结构,队列是先进先出的数据结构,要用两个栈实现一个队列,就必须让两个栈实现元素的先进先出。入栈时,让需要入栈的元素全都进入S1栈中,出栈时,再把S1中的元素依次出栈,入S2栈,再把S2的栈顶元素弹出。
如下图所示:
当然,这个过程过于繁琐,有可以优化的方法
如下图所示:
代码实现: