美文网首页前端大杂烩
数据结构 — 堆栈

数据结构 — 堆栈

作者: lio_zero | 来源:发表于2022-05-29 10:50 被阅读0次

堆栈(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

相关文章

  • Swift 算法俱乐部:堆栈

    通过本教程,你将学习怎样用swift实现堆栈数据结构。作为基础数据结构,堆栈能解决很多程序中的问题。 开始吧 堆栈...

  • 内存中的堆栈和数据结构堆栈区别

    内存中的堆栈和数据结构堆栈不是一个概念,可以说内存中的堆栈是真实存在的物理区,数据结构中的堆栈是抽象的数据存储结构...

  • Java内存中的数据存储结构

    内存中的堆栈和数据结构堆栈不是一个概念,可以说内存中的堆栈是真实存在的物理区,数据结构中的堆栈是抽象的数据存储结构...

  • Go 堆栈的理解

    在讲Go的堆栈之前,先温习一下堆栈基础知识。 什么是堆栈?在计算机中堆栈的概念分为:数据结构的堆栈和内存分配中堆栈...

  • 数据结构和算法(三) - 栈

    堆栈数据结构在概念上与物理的堆栈相同。将元素添加到堆栈时,将其放在堆栈顶部。从堆栈中删除元素时,始终会删除最顶层的...

  • 堆栈概念及区别

    在计算机领域,堆栈是一个不容忽视的概念,堆栈是两种数据结构。堆栈都是一种数据项按序排列的数据结构,只能在一端(称为...

  • 在Python中实现两个堆栈的队列

    在Python中实现两个堆栈的队列。数据结构了解堆栈和队列。然后用两个堆栈实现一个队列。堆栈和队列都是列表。但它们...

  • 通俗易懂:C语言中内存堆和栈的区别

    数据结构的栈和堆 首先在数据结构上要知道堆栈,尽管我们这么称呼它,但实际上堆栈是两种数据结构:堆和栈。 堆和栈都是...

  • 线性排序算法-堆排序 (2)

    堆是什么鬼? 在学数据结构的时候,链表、堆栈、树三种数据结构印象最深刻。当时理解有误区,堆栈被当成一种结构,可能因...

  • 第十四章 将列表当做堆栈使用

    将列表当做堆栈使用 ​ 列表方法使得列表可以很方便的作为一个堆栈来使用,堆栈作为特定的数据结构,最先进入的元素...

网友评论

    本文标题:数据结构 — 堆栈

    本文链接:https://www.haomeiwen.com/subject/pfyiprtx.html