栈和队列
在js当中跟其他语言不一样,js当中没有专门的栈和队列的类型,所有的栈和队列都是用数组模拟出来的
栈:一端封闭,只能从另一端进出的数组这种特殊的数组就叫做栈
FIRST IN LAST OUT 先进的最后出
栈的特点:
何时使用:如果希望永远保持使用最新的元素,就要使用栈结构。
如何使用:
1、从结尾出入栈
入栈(压栈):arr.push(值)
出栈(弹栈):var last = arr.pop()
特点:无论是出栈或者入栈都不影响剩余元素的位置
2、从开头出入栈,
入栈:arr.unshift(值);
出栈:var first = arr.shirt()
缺点:每次出入栈都会导致其余元素的位置改变
下面呢咱们来测试这样一个事情 push 和 unshift能不能一次压入多个数值呢?能不能把数组给我打散了在压入呢?
不会打散,push和unshift都不会打散数组参数,它压了个套间进去。再看能不能压两个元素呢?
这个地方可以是多个值,但是入栈不支持数组参数
完整例子:(注意push 和 unsfitf的区别)
主要看咱们的执行顺序。
队列:从结尾进入,从开头出来的数组。
First IN FIRST OUT
何时使用:希望按照先来后到的顺序依次使用元素时候
1、入队列(排队):arr.push();
2、出队列:var first = arr.shift();