前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >简单快速记忆js数组栈和队列函数

简单快速记忆js数组栈和队列函数

作者头像
蓓蕾心晴
发布2022-08-18 14:11:14
6060
发布2022-08-18 14:11:14
举报
文章被收录于专栏:前端小叙

自从开了这个公众号,一直没时间为大家分享技术文章,今天得空,来开启的我首篇发文。

首先说,我也是一个前端小白,以后且叫我小叙妹妹就可,刚刚步入前端行业半年时间,很多东西都还在不断学习中,所以以后公众号为大家分享的,大部分都是一些个人学习总结的笔记与心得,如果看到好的技术文章,也会为大家分享出来(当然,一定会著名作者出错,与转载字样),希望大家也是像我一样刚刚步入前端行业的IT程序猿们,跟我一起奋斗,一起学习,一起讨论前端最新的技术,争取成为牛掰的全栈工程师!

梦想还是要有的,前提是没有努力,何谈梦想呢?

在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的为结尾。

最后送大家一句我的座右铭:对自己不狠,就是别人对你狠。

发表于  2016-12-04

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-08-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档