1. 程式人生 > >Js系列一:三種基礎的資料結構

Js系列一:三種基礎的資料結構

在js中我們必須瞭解得三種資料結構:棧(stack),堆(heap),佇列(queue).

一,棧

(1),棧是一種資料結構,它表達的是資料的一種存取方式,這是理論基礎。

(2),棧可以用來規定程式碼的執行順序,在js中通常叫做函式呼叫棧(call stack),它是根據資料結構理論實現的一種實踐。

(3),棧表達的是一種資料在記憶體當中的儲存區域,通常叫棧區。但js和其他語言有所區別,它並沒有像其他語言那樣區分棧區和堆區。因此我們可以理解為所有資料是存放在堆記憶體空間中的。

圖示:

這種儲存方式的特點是先進後出,後進先出,在實踐中(Array)提供兩種方法來應對這種存取方式:

push:像陣列末尾新增元素(進棧方法)

pop:彈出資料末尾的一個元素(出棧方法)

二,堆

堆通常為一種樹狀結構,它的存取方式和在書架中取書十分的類似。書雖然整齊的擺在書架上,但是隻要知道書的名字,在書架找到之後就可以直接取出。不用關心書的存放順序。既不用像棧一樣必須取出某些元素之後才能取到自己想要的元素

圖示:

三,佇列

在js中理解佇列資料結構的目的是為了搞清楚事件迴圈(Event Loop)機制到底是怎麼回事。

圖示

佇列(queue)是一種先進先出(FIFO)的資料結構。正如果安檢一樣,排在佇列前面的人一定是最先通過的人。