栈与队列之间的互相转换

    技术2022-07-11  80

    一、基本概念

    1、栈stack:先进后出 FILO

    2、队列queue:先进先出 FIFO

    二、两个栈实现一个队列

     

    1、入队:push到栈1

    2、出队:

    (1)若栈2为空,push到栈2,再从栈2 依次pop

    (2)若栈2非空,先将栈2 数据依次pop,直到为空,再执行步骤(1)

    三、两个队列实现一个栈

    1、入栈:push数据 “abc” 到一个不为空的队列,若全为空,即均可

    2、 出栈:

    (1) 将队1数据(除了最后一个)“ab” push到队2(空)中,将队1中仅剩的一个数据 “c” pop出队,即实现后进先出 

     

    (2)同理继续出栈, 将队2数据(除了最后一个)“a” push到队1(空)中,将队2中仅剩的一个数据 “b” pop出队 

     

    3、有新数据入栈,push数据 “d” 到一个不为空的队列,队1d

    4、出栈,同理, 将队1数据(除了最后一个)“a”  push到队2(空)中,将队1中仅剩的一个数据 “d” pop出队

    Processed: 0.009, SQL: 9