-
栈(stack):它是一种运算受限的线性表,后进先出(LIFO)
LIFO(last in first out)表示就是后进入的元素, 第一个弹出栈空间. 类似于自动餐托盘, 最后放上的托盘, 往往先把拿出去使(后进先出)
如图,2方块必须等3方块出来了才能才能出来,1方块必须等3方块与2方块出来了才能出来
- 栈结构的实现(JavaScript)
class Stack {
constructor() {
// 给栈创造引用空间
this.item = []
}
// 向栈顶添加元素 数组的最后添加元素
push(el) {
this.item.push(el)
}
// 移除栈顶元素,并返回栈顶元素(数组最后一个元素)
pop() {
let delnode = this.item.pop()
return delnode
}
// 返回栈顶元素(数组最后一个元素),不对栈进行其他操作
peek() {
let index = this.item.length - 1
return this.item[index]
}
// 判断栈是否为空 栈为空true 数组的length长度来判断栈是否为空
isEmpty() {
return this.item.length == 0
}
// 清空栈
clear() {
this.item = []
}
// 查询栈的长度
size() {
return this.item.length
}
}
// 创一个pp的栈
let pp = new Stack()
pp.push(2)
pp.push(4)
console.log(pp,pp.pop());