基于javascript数组的栈方法和队列方法
2018-01-18 本文已影响7人
陆霁
栈和队列是我们常见的两种数据结构,今天我们讨论的是如何基于javascript数组来实现这种结构。
栈:简而言之就是先进后出。

队列:先进先出

数组作为javascript引用类型之一,天然提供了四个方法帮助我们实现栈和队列的结构。
shift: 从数组中把第一个元素删除,并返回被删除元素的值。
pop:从数组中把最后一个元素删除,并返回被删除元素的值。
unshift:在数组第一个元素之前增加元素,返回增加后数组的长度。
push:在数组最后一个元素之后增加元素,返回增加后数组的长度。
栈: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

队列插入 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]
有关栈和队列的初步实现,就到这了。