Skip to content

JavaScript数据结构 - 栈

定义

栈是一种线性数据结构,类似于现实世界中的物品堆叠。它遵循后进先出(LIFO)的操作顺序,与现实世界的堆叠方式类似。这意味着新的元素被添加到栈的顶部,同时也可以从栈的顶部移除元素。

JavaScript栈可视化

栈数据结构的主要操作包括:

  • 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