web前端面试系列 - 数据结构(两个栈模拟一个队列)

时间:2022-02-11 15:54:57

一、 用两个栈模拟一个队列

思路一:

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的顶部元素。