1.理论基础
队列:先进先出
栈:先进后出
2. 232.栈实现队列
js里的数组就可以看成是栈,因为pop出来的就是最后push进去的.(pop是pop数组的最后一个元素)
2.1 tips
- 如果在方法里用
this.pop()
,调用的是方法的pop而不是js自带的pop - 注意看pop里的判断逻辑,第一遍用的stackOut,第二遍用的stackIn
-
empty
的实现好好琢磨下
3. 225.队列实现栈
思路:
可以用两个队列,也可以用一个队列实现.
一个队列的实现方法:把前面的先进的元素再加入一遍队列(这里提到的都是单向队列)
- 和上一题不一样的点在于,js中的数组同样可以模拟queue,怎么模拟呢?用
shift
做到的.因为队列的特点就是第一个进的第一个出来,所以用shift
方法刚好.所以如果想模仿栈就用pop()
,想模仿队列就用shift()
3.1 tips
- 用到了
shift
函数,是移除数组的第一个元素 - 查看第一个元素的时候,记得先存到变量里,因为如果直接用shift是会同时删除掉该元素的