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

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

一,栈

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

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

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

图示:

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

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

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

二,堆

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

图示:

三,队列

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

图示

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

猜你喜欢

转载自blog.csdn.net/weixin_39939012/article/details/85542933
今日推荐