一、应用一:栈在括号中的应用

1.1 问题描述

一般的写一个算数表达式,看看括号是否是匹配的。

1.2 算法思路

  • 初始设置一个空栈,顺序读入括号
  • 若是左括号压入栈中。
  • 若是右括号,看是否与栈顶的左括号匹配,
    • 若匹配,则弹出栈顶左括号
    • 若不匹配,则算法结束。

1.3 手算

二、应用二:栈在表达式中的应用

2.1 问题描述

计算机中常常会把一个表达式转换为前缀表达式或者后缀表达式,便于利用栈进行计算

2.2 前中后缀表达式

  • 中缀表达式a + b,运算符在数字之间,也就是普通的我们经常写的表达式。
  • 后缀表达式a b +,运算符在数字之后,根据中缀表达式进行变换而来
  • 前缀表达式+ a b,运算符在数字之前,根据中缀表达式进行变换而来

2.3 考法一:前中后缀表达式之间转换(重点)

  • 通常考试会给一个中缀表达式,写出它的前缀表达式或者后缀表达式。
  • 中缀表达式转后缀表达式原则:数字集合在左优先,也称左优先原则。
  • 中缀表达式转前缀表达式原则:数字集合在右优先,也称右优先原则。

2.4 考法二:后缀表达式如何计算

  • 通常考试会给一个后缀表达式,写出其计算结果
  • 计算步骤
    • ①从左到右遍历表达式
    • ②扫描到数字压入栈中
    • ③扫描到操作符弹出栈顶两个元素Y和X
    • ④将弹出的两个数和操作符进行计算 ,XY(一定要注意最上面的是Y其次到X)
    • ⑤将计算结果压入栈中,继续扫描。

2.5 代码

应用三:栈在递归中的应用

  • 类似于俄罗斯套娃,一层接着一层循环。但有两个条件,需要递归表达式(递归体)和边界条件(递归出口)。

  • 典型的就是斐波那契数列,还有树的遍历都会涉及到。读的懂就可以。不懂可以再看看视频。初次理解肯定有点难。

  • 斐波那契数列

在这里插入代码片

应用四:队列在层序遍历中的应用

4.1 问题描述

二叉树的遍历有前序遍历,中序遍历,后序遍历,层序遍历。其中层序遍历中就需要用到队列。

4.2 算法步骤

  • ① 根节点入队
  • ② 若队空(所有结点都已处理完毕),则遍历结束;否则执行步骤③
  • ③ 队列中第一个结点出队,并访问之。若有左孩子,左孩子入队;若有右孩子,则将右孩子入队,返回②。

五、考研数据结构笔记——栈与队列的应用相关推荐

  1. 王道计算机考研 数据结构 (栈和队列)

    第三章.栈和队列 3.1.1_栈的基本概念 栈的定义 栈的基本操作 栈的常考题型 思维导图 3.1.2_栈的顺序存储实现 顺序栈的定义 初始化操作 进栈操作 出栈操作 读栈顶元素操作 另一种方式 这种 ...

  2. 2022年考研数据结构_3 栈和队列

    https://gitee.com/fakerlove/Data-Structure 文章目录 3. 栈和队列 3.1 栈 3.1.1 栈的定义 3.1.2 栈的实现 3.1.3 栈的应用 (1)递归 ...

  3. 天勤考研数据结构笔记—栈的C语言实现

    栈的基本概念 栈的定义:栈是一种只能在一端进行插入或删除操作的线性表.其中允许进行插入或删除的一端称为栈顶(top).栈顶是由一个称为栈顶指针的位置指示器(其实就是一个变量,对于顺序栈,就是数组索引, ...

  4. 一、考研数据结构笔记——引言及目录

    一.关于我理解的数据结构 1. 引言 本人自2021年3月准备考研,考研主要是为了提升学历,本科院校不是理想.迫切需要提高学历. 写这刊博客,主要是总结我考研路上对数据结构的一些理解,以及为了方便我后 ...

  5. 2022天勤考研数据结构笔记 第3章 栈和队列

    2022天勤考研数据结构笔记 第3章 栈和队列(更新中) 第3章 栈和队列 3.1 结构体定义 3.2 顺序栈 3.3 链栈 3.4 栈的应用 3.5 顺序队 3.6 链队 第3章 栈和队列 栈和队列 ...

  6. 二、考研数据结构笔记——绪论(理解数据结构,算法,时间复杂度计算做题技巧)

    一.数据结构基本概念 1.数据:数据是信息的载体.客观事物的一种表现形式.万事万物都能用数据表示出来. 2.数据元素:数据元素是数据的基本单位,一个数据元素有若干个数据项组成 3.数据项:构成数据元素 ...

  7. 【数据结构】栈、队列、堆的python实现

    [数据结构]栈.队列.堆的python实现 一.栈的python实现 1.1.栈的列表实现方法 1.2.用双向队列模拟栈 二.队列的python实现 2.1.队列的列表实现 2.2.使用deque实现 ...

  8. C语言【数据结构】栈和队列【OJ题(C++)、选择题】

    目录 一.OJ题 1.225. 用队列实现栈 2.232. 用栈实现队列 3.622. 设计循环队列 4.20. 有效的括号 二.选择题 1.下列关于栈的叙述正确的是(B) 2.一个栈的入栈序列为AB ...

  9. 数据结构~07.栈和队列的基本概念

    数据结构~07.栈和队列的基本概念 本文是上一篇文章的后续,详情点击该链接~ 栈的定义: 栈是一种只能在一端进行插入或删除的线性表.其中,允许插入或删除的一端为栈顶(TOP).栈顶由一个称为栈顶指针的 ...

最新文章

  1. 计算机网络第五章:运输层
  2. ​【Python基础】一文看懂 Pandas 中的透视表
  3. 实现SDI与MDI的转换 (转)
  4. TCP/IP协议与UDP协议的区别
  5. 【招聘(西安)】深圳市中兴云服务有限公司.NET工程师
  6. 凝思系统改时间_国产操作系统往事:四十年激变,终再起风云
  7. 【2018.5.12】模拟赛之四-ssl2416 条形图【高精度,dp】
  8. iphone储存空间系统怎么清理_如何清理iPhone的缓存,释放更多存储空间,这些方法你知道吗...
  9. php 自动寻路算法,PHP树-不需要递归的实现方法
  10. 4个独立按键实现对数码管数字显示的加减清零等
  11. TDSQL 在微众银行的大规模实践之路
  12. conflicting declaration ‘typedef struct LZ4_stream_t LZ4_stream_t’解决
  13. 关于 Mythware 极域电子教室
  14. 电子计算机X线体层摄影,电子计算机X线体层摄影检查诊断乳腺肿块的价值
  15. dedecms如何制作中英文切换的网站?
  16. 5G啊5G,你是不是只比4G多一G?
  17. 第十四章:【UCHome二次开发】uchome通用方法
  18. BGP 下一跳的理解和实验
  19. 今日头条引流脚本,微商引流工具
  20. 计算最长连续1数码长度c语言,C语言练习场-有难度

热门文章

  1. 十五件事让身体越来越差
  2. 基于GLSurfaceView的视频播放器偶现无画面的问题分析
  3. 计算机二级vb考试代码,二级计算机vb考试常用代码(看完必过).doc
  4. vue 输入框限制中英文及数字
  5. 如何将pdf转换成ppt呢?
  6. 重返母校怀抱,老同学聚会南京大学
  7. 洛谷[LnOI2019]长脖子鹿省选模拟赛 简要题解
  8. 【Himi转载推荐之一】优化cocos2d/x程序的内存使用和程序大小【一】
  9. 计算机按某些键进入用户界面,电脑开机时按什么键进入bios界面
  10. 【数据增强】Cutout