快速记忆数组栈和队列函数push()和shift()

简介:

在js中,对数组的操作是比较常见的,有时候,我们需要模拟栈和队列的特性才能实现需求,今天来给大家用通俗易懂、简洁明了的几行文字,来告诉大家栈和队列的几个函数,如何快速记住。

首先,概念还是要知道的:

栈(stack)又名堆栈,它是一种运算受限的线性表。其限制是仅允许在表的一端进行插入和删除运算。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。

队列(queue)是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。

js中没有专门栈和队列类型,其实都是用数组模拟的

:一端封闭,只能从另一端进出的数组

   FILO(first in last out) 先进的后出

   栈进出分为两种:

   结尾出入栈:

    入: arr.push(值) 将值压入数组末尾(push之前栈里是没有 元素的)

    出: var last=arr.pop() 【弹出来的数有用,所以用last接住】

从数组末尾弹出1个元素 (新值永远在末尾)

    好处: 新出入栈元素,不影响其他元素的位置

   开头出入栈: 入: arr.unshift(值) 将值插入到开头【API】

                 出: var first=arr.shift();

                 从数组开头弹出第1个元素(新值永远在开头)

     缺点: 每出入栈一次元素,其余所有元素的位置都要改变(效率低一些)

     何时使用栈: 保证始终使用数组中最新的元素时

   eg:ECS 执行环境栈

        浏览器永远访问最新的网址,外面是历史记录栈

队列: 只能从一端进入,从另一端出

         FIFO(first in first out)  先进先出

         从结尾入队列: arr.push(值)

         从开头出队列: var first=arr.shift()

         何时使用队列: 希望按照先来后到的顺序使用数据时

函数速记:

pop()与shift()都是删除

pop()删除数组中的最后一个元素,并返回该元素

shift()删除数组中的第一个元素,并返回该元素

push()与unshift()都是插入

push()添加一个或多个新元素到数组的结尾,返回数组长度

unshift()添加一个或多个新元素到数组的开头,返回数组长度

即 :

单词短的为删除,

单词长的为插入,

删除返回该元素,

插入返回该长度.

shift与unshift都是开头,pop和push都是结尾

(带shift的为开头,带p的为结尾)


本文转自 蓓蕾心晴 51CTO博客,原文链接:http://blog.51cto.com/beileixinqing/1879341,如需转载请自行联系原作者
相关文章
|
18天前
|
消息中间件 存储 搜索推荐
深入理解栈和队列(二):队列
深入理解栈和队列(二):队列
33 0
|
19天前
|
存储 算法 索引
【算法与数据结构】队列的实现详解
【算法与数据结构】队列的实现详解
|
1天前
|
C语言
数据结构中顺序栈的进栈和出栈用C语言表示
数据结构中顺序栈的进栈和出栈用C语言表示
10 1
|
10天前
|
Python
python学习-函数模块,数据结构,字符串和列表(下)
python学习-函数模块,数据结构,字符串和列表
50 0
|
11天前
|
存储 算法 调度
数据结构期末复习(3)栈和队列
数据结构期末复习(3)栈和队列
18 0
|
23天前
|
算法 C语言
【算法与数据结构】 C语言实现单链表队列详解2
【算法与数据结构】 C语言实现单链表队列详解
|
23天前
|
存储 算法 C语言
【算法与数据结构】 C语言实现单链表队列详解1
【算法与数据结构】 C语言实现单链表队列详解
|
1月前
【栈】数据结构栈的实现
【栈】数据结构栈的实现
|
1月前
|
存储
数据结构--栈和队列
数据结构--栈和队列
|
1月前
|
存储 算法 数据处理
数据结构从入门到精通——栈
栈,作为一种后进先出(LIFO)的数据结构,在计算机科学中扮演着重要的角色。它的特性使得它在处理函数调用、括号匹配、表达式求值等问题时具有得天独厚的优势。然而,如果我们跳出传统思维的束缚,会发现栈的用途远不止于此。
58 0