JavaScript数据结构 - 栈
定义
栈是一种线性数据结构,类似于现实世界中的物品堆叠。它遵循后进先出(LIFO)的操作顺序,与现实世界的堆叠方式类似。这意味着新的元素被添加到栈的顶部,同时也可以从栈的顶部移除元素。
栈数据结构的主要操作包括:
push
:将元素添加到栈的顶部pop
:从栈的顶部移除元素peek
:获取栈顶的元素,但不移除它isEmpty
:检查栈是否为空
实现
class Stack {
constructor() {
this.items = [];
}
push(item) {
this.items.unshift(item);
}
pop(item) {
return this.items.shift();
}
```js
class Stack {
constructor() {
this.items = [];
}
push(item) {
this.items.unshift(item);
}
pop() {
return this.items.shift();
}
peek() {
return this.items[0];
}
isEmpty() {
return this.items.length === 0;
}
}
const stack = new Stack();
stack.push('苹果');
stack.push('橙子');
stack.push('梨子');
stack.isEmpty(); // false
stack.peek(); // '梨子'
stack.pop(); // '梨子'
stack.pop(); // '橙子'
stack.pop(); // '苹果'
stack.isEmpty(); // true