栈
1. 概念
栈是一种遵从先进后出 (LIFO) 原则的有序集合;新添加的或待删除的元素都保存在栈的末尾,称作栈顶,另一端为栈底。在栈里,新元素都靠近栈顶,旧元素都接近栈底。
2. 特点:
-
栈( stack )又称堆栈,是一种后进先出的有序集合,其中一端为栈顶,另一端为栈底,添加元素(称为压栈/入栈或进栈)时,将新元素压入栈顶,删除元素(称为出栈或退栈)时,将栈底元素删除并返回被删除元素。
-
特点:先进后出,后进先出。
-
生活中的案例:一叠书、一叠盘子。
如图所示:
实现:
class Stack {
constructor() {
this.items = [];
}
// 入栈
push(element) {
this.items.push(element);
}
// 出栈
pop() {
return this.items.pop();
}
// 末位
peek() {
return this.items[this.items.length - 1];
}
// 是否为空栈
isEmpty() {
return !this.items.length;
}
// 尺寸大小
size() {
return this.items.length;
}
// 清空栈
clear() {
this.items = [];
}
// 打印栈数据
print() {
console.log(this.items.toString());
}
}
// 实例化一个栈
const stack = new Stack();
console.log(stack.isEmpty); // true
// 添加元素
stack.push(5);
stack.push(8);
// 读取属性再添加
console.log(stack.peek); // 8
stack.push(11);
console.log(stack.size); // 3
console.log(stack.isEmpty); // false