棧和隊列是我們常見的兩種數(shù)據(jù)結構,今天我們討論的是如何基于javascript數(shù)組來實現(xiàn)這種結構。
棧:簡而言之就是先進后出。

棧
隊列:先進先出

隊列
數(shù)組作為javascript引用類型之一,天然提供了四個方法幫助我們實現(xiàn)棧和隊列的結構。
shift: 從數(shù)組中把第一個元素刪除,并返回被刪除元素的值。
pop:從數(shù)組中把最后一個元素刪除,并返回被刪除元素的值。
unshift:在數(shù)組第一個元素之前增加元素,返回增加后數(shù)組的長度。
push:在數(shù)組最后一個元素之后增加元素,返回增加后數(shù)組的長度。
棧:push + pop
棧插入push

棧插入
let a = [1,2,3]
a.push(4)
console.info(a)
result:[1,2,3,4]
棧刪除pop

棧刪除
let a = [1, 2, 3]
a.push(4)
a.pop()
console.info(a)
result:[1,2,3]
隊列 unshift + pop

2.png
隊列插入 unshift
let a = [1, 2, 3]
a.unshift(4)
console.info(a)
result:[4,1,2,3]
隊列刪除 pop
let a = [1, 2, 3]
a.unshift(4)
a.pop()
console.info(a)
result:[4,1,2]
有關棧和隊列的初步實現(xiàn),就到這了。