栈和队列

Posted pandawind

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了栈和队列相关的知识,希望对你有一定的参考价值。

在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();
技术分享图片

 

以上是关于栈和队列的主要内容,如果未能解决你的问题,请参考以下文章

数据结构栈和队列OJ练习(栈和队列相互实现+循环队列实现)

Java栈和队列·下

数据结构复习--栈和队列--栈

栈和队列-第五节:JavaC++Python实现栈和队列

数据结构初阶:栈和队列

栈和队列-上