talk is cheap, show me the code.
栈
First In Last Out
// 初始化容器
const stack = []
// 数据入栈
stack.push(1)
stack.push(2)
stack.push(3)
console.log(stack)
// 获取栈顶元素
if (stack.length > 0) {
stack[stack.length - 1]
}
// 栈顶元素出栈
console.log(stack.pop())
console.log(stack.pop())
console.log(stack.pop())
控制台输出
[1, 2, 3]
3
2
1
队列
First In First Out
左进右出
// 初始化容器
const queue = []
// 数据入队
queue.unshift(1)
queue.unshift(2)
queue.unshift(3)
console.log(queue)
// 获取右队首元素
if (queue.length > 0) {
queue[queue.length - 1]
}
// 右队首元素出队
console.log(queue.pop())
console.log(queue.pop())
console.log(queue.pop())
控制台输出
[3, 2, 1]
1
2
3
右进左出
// 初始化容器
const queue = []
// 数据入队
queue.push(1)
queue.push(2)
queue.push(3)
console.log(queue)
// 获取左队首元素
if (queue.length > 0) {
queue[0]
}
// 左队首元素出队
console.log(queue.shift())
console.log(queue.shift())
console.log(queue.shift())
控制台输出
[1, 2, 3]
1
2
3