1. 程式人生 > >js中陣列的棧方法和佇列方法

js中陣列的棧方法和佇列方法

1.棧方法

ECMAScript陣列提供了一種讓陣列的行為類似於其他資料結構的方法。具體來說,陣列可以表現的就像棧一樣(棧是一種可以限制插入和刪除的資料結構)。
棧是一種LIFO(Last-In-First-Out,後進先出)的資料結構。棧中項的插入和移除只發生再一個位置,就是棧的頂部。ECMAScript為陣列專門提供了push()和pop()方法,實現類似棧的行為。

push()向陣列末尾新增項,返回修改後陣列長度。pop()從陣列末尾移除最後一項,減少陣列長度,返回移除的項。


2.對列方法

佇列資料結構的訪問規則是FIFO(First-In-First-Out,先進先出)。佇列在列表的末端新增項,從列表的前端移除項。由於push()是向陣列末端新增項的方法,因此要模擬佇列,只需一個從陣列前端取得項的方法。實現這一操作的陣列方法就是shift(),它能夠移除陣列中的第一個項並返回該項,同時將陣列長度減1。結合使用shift()和push()方法,就可以像使用佇列一樣使用陣列。

ECMAScript還為陣列提供了一個unshift()方法,它能在陣列前端新增任意個項,並返回新陣列的長度。因此同時使用unshift()和pop()方法,可以從相反的方向來模擬佇列。即在陣列的前端新增項,從陣列末端移除項。