一、 用两个栈模拟一个队列
思路一:
1. 一个栈s1作为数据存储,另一个栈s2,作为临时数据存储。
2. 入队时将数据压人s1
3. 出队时将s1弹出,并压人s2,然后弹出s2中的顶部数据,最后再将剩余数据弹出s2,并压人s1.
思路二:
1. 一个栈s1作为数据存储,另一个栈s2,作为临时数据存储。
2. 入队时,判断s1, 是否为空,如果不为空,则将数据直接压入s1, 如果为空,则将s2中的数据全部倒入s1,在将数据压人s1.
3. 出队时,判断s2, 是否为空,如果不为空,则直接弹出s2顶部的数据,如果为空,则将s1中的数据全部倒入s2, 再弹出s2顶部的数据。
思路三:
1. 入队时,将数据压入s1.
2. 出队时,判断s2是否为空,如果不为空,则直接弹出顶部元素;如果为空,则将s1的数据倒入s2,再弹出s2的顶部元素。