全国旗舰校区

不同学习城市 同样授课品质

北京

深圳

上海

广州

郑州

大连

武汉

成都

西安

杭州

青岛

重庆

长沙

哈尔滨

南京

太原

沈阳

合肥

贵阳

济南

下一个校区
就在你家门口
+
当前位置:首页  >  技术干货

JS栈结构的简单封装

发布时间:2022-10-10 16:43:03
发布人:wjy

  栈:是一种遵循后进先出(Last In First Out / LIFO) 原则的一种有序集合。

  新添加或者要删除的元素都会保存在栈的同一端,我们把它叫做栈顶,另外一端叫做栈底。

  在栈中所有的新元素都接近栈顶,而所有的旧元素都接近栈底。

JS栈结构的简单封装1

  在我们的生活中也有很多类似于栈这种结构的例子:

  我们将栈视作是一个容器,比如水杯。它只有一个入口和出口就是杯子的顶部(和我们的栈非常相似)。我们向杯子中放入5块同杯子直径大小的饼干,全部放入后我们开始取出饼干。大家会发现 你最先取出的饼干是最后放入的那块,正好也就符合了我们栈的特点(LIFO)

  在编程世界中栈也被用来保存变量、方法调用等功能,也被用于浏览器的历史记录(比如浏览器的返回按钮)。

  那么下面我们就使用JavaScript的类来创建一个我们的栈。

JS栈结构的简单封装2

  我们需要一种方式来保存我们栈中的数据,从上面的代码可以看到,我这边选择的是数组。但是数组允许我们在任何位置添加或者删除元素,我们需要给元素添加和删除的位置有一个约束,让我们的数组能够遵循 后进先出(LIFO) 的原则。所以接下来需要给我们的栈再添加一些方法。

JS栈结构的简单封装3

  以上代码就已经实现了我们栈的功能。 接下来我们把它整理到一起来看一下。

JS栈结构的简单封装4

  接下来就可以使用我们的 Stack 了

JS栈结构的简单封装5

  最后,还有一些专业词汇希望大家能够掌握

  向栈中添加元素: 我们可以称其为 入栈、压栈、压入

  从栈中移除元素: 我们可以称其为 出栈、弹出

相关文章

rnn和lstm中batchsize和timestep的区别是什么?

rnn和lstm中batchsize和timestep的区别是什么?

2023-10-14
什么是OA服务器?

什么是OA服务器?

2023-10-14
常用的渗透测试工具都有哪些?

常用的渗透测试工具都有哪些?

2023-10-14
大数据测试工程师需要具备哪些技能?

大数据测试工程师需要具备哪些技能?

2023-10-14

最新文章

常见网络安全面试题:Windows常用的命令有哪些?

常见网络安全面试题:Windows常用的命令有哪些?

2023-10-09
常见网络安全面试题:根据设备告警如何展开排查?

常见网络安全面试题:根据设备告警如何展开排查?

2023-10-09
常见网络安全面试题:mysql加固呢?(数据库加固)

常见网络安全面试题:mysql加固呢?(数据库加固)

2023-10-09
常见网络安全面试题:windows和linux加固?(操作系统加固)

常见网络安全面试题:windows和linux加固?(操作系统加固)

2023-10-09
在线咨询 免费试学 教程领取