数据结构 — 堆栈

堆栈(Stack)是一种线性数据结构,其行为类似于现实世界中的项目堆栈。它遵循后进先出(LIFO)的操作顺序,类似于现实世界中的对应物。这意味着新项目将添加到堆栈顶部,项目也将从堆栈顶部移除。

JavaScript 堆栈可视化

栈数据结构的主要操作有:

  • push:将元素添加到堆栈顶部
  • pop:从堆栈顶部移除元素
  • peek:检索堆栈顶部的元素,而不删除它
  • isEmpty:检查堆栈是否为空

JavaScript 实现

class Stack {
  constructor() {
    this.items = []
  }

  push(item) {
    this.items.unshift(item)
  }

  pop(item) {
    return this.items.shift()
  }

  peek(item) {
    return this.items[0]
  }

  isEmpty() {
    return this.items.length === 0
  }
}
  • 使用 constructor 创建一个类(class),为每个实例初始化空数组 items
  • 定义一个 push() 方法,使用 Array.prototype.unshift() 将元素添加到 items 数组的末尾。
  • 定义一个 pop() 方法,使用 Array.prototype.shift()items 数组的开头删除元素。
  • 定义一个 peek() 方法,检索 items 数组中第一个元素的值,而不删除它。
  • 定义一个 isEmpty() 方法,使用 Array.prototype.length 判断 items 数组是否为空。
const stack = new Stack()

stack.push('apples')
stack.push('oranges')
stack.push('pears')

stack.isEmpty() // false

stack.peek() // 'pears'

stack.pop() // 'pears'
stack.pop() // 'oranges'
stack.pop() // 'apples'

stack.isEmpty() // true

以上内容来自 30 seconds of code 的 JavaScript Data Structures - Stack

Leetcode 相关的堆栈题目

最小栈

更多资料

Stack

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值