小曹同学的百草园
首页
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

小曹同学

一个普通的前端开发
首页
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • 数据结构

    • 简介
    • 栈
      • 栈(stack):的数据结构
    • 队列
    • 链表
    • 集合
    • 字典
    • 树
    • 图
  • 前端算法
  • 数据结构
小曹同学
2022-02-20
目录

栈

# 栈(stack):后进先出的数据结构

​ image-20211120171235117

由于js中没有栈的概念,所以栈都是利用Array数组来模拟栈的操作

image-20211120171531599

//实例
const stack = []
stack.push(1)//stack = [1]
stack.push(2)//stack = [1,2]
const item1 = stack.pop()//stack = [1];item1 = 2
const item2 = stack.pop(2)//stack = [];item2 = 1
1
2
3
4
5
6

# 应用场景

# 十进制转二进制

​ 原理:image-20211120171736779

  • 后厨的余数需要排在前面
  • 余数依次入栈然后再依次出栈,实现余数的倒序输出
# 有效的括号:判断括号是否有效闭合

image-20211120171953705

  • 越靠后的左括号对应的右括号越靠前。
  • 遇到左括号入栈,遇到右括号出栈,最后判断栈空即为合法
  • ✅实例题解(题号20)
    • 新建一个栈
    • 扫描字符串遇到左括号就入栈,遇到右括号类型,与栈顶元素匹配。匹配的右括号就出栈,类型不匹配直接判定不合法。
    • 最后判断栈是否为空,否则为不合法。
# 函数调用堆栈
image-20211120172129400
  • 最后调用的函数,最先执行完成。
  • js解释器使用栈来控制函数的调用顺序。
编辑 (opens new window)
上次更新: 2022/02/21, 05:57:00
简介
队列

← 简介 队列→

最近更新
01
优雅代码书写之道
06-07
02
图片懒加载
05-05
03
项目部署
04-16
更多文章>
Theme by Vdoing
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式