Js系列一:三种基础的数据结构

在js中我们必须了解得三种数据结构:栈(stack),堆(heap),队列(queue).

一,栈

(1),栈是一种数据结构,它表达的是数据的一种存取方式,这是理论基础。

(2),栈可以用来规定代码的执行顺序,在js中通常叫做函数调用栈(call stack),它是根据数据结构理论实现的一种实践。

(3),栈表达的是一种数据在内存当中的储存区域,通常叫栈区。但js和其他语言有所区别,它并没有像其他语言那样区分栈区和堆区。因此我们可以理解为所有数据是存放在堆内存空间中的。

图示:

这种存储方式的特点是先进后出,后进先出,在实践中(Array)提供两种方法来应对这种存取方式:

push:像数组末尾添加元素(进栈方法)

pop:弹出数据末尾的一个元素(出栈方法)

二,堆

堆通常为一种树状结构,它的存取方式和在书架中取书十分的类似。书虽然整齐的摆在书架上,但是只要知道书的名字,在书架找到之后就可以直接取出。不用关心书的存放顺序。既不用像栈一样必须取出某些元素之后才能取到自己想要的元素

图示:

三,队列

在js中理解队列数据结构的目的是为了搞清楚事件循环(Event Loop)机制到底是怎么回事。

图示

队列(queue)是一种先进先出(FIFO)的数据结构。正如果安检一样,排在队列前面的人一定是最先通过的人。

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值