408第一季 - 数据结构 - 栈与队列的应用

括号匹配

用瞪眼法就可以知道的东西

栈在表达式求值运用

先简单看看就行,题目做了就理解了

AB是操作符,也是被狠狠加入后缀表达式了,然后后面就是*,只要优先级比栈顶运算符牛逼就放里面,很显然,*比+牛逼

继续前进,左括号直接放,到-的时候这么理解:因为括号给下面的*隔开了,所以可以直接放

然后遇到右括号,把里面的内容去了,左括号也要删除,到了后缀表达式是没有括号的

然后也是遇到废物-号了,这里是要连续出栈的,-优先级过于垃圾,*+出栈后,-号放里面

扫描完之后,把剩余的栈元素给弄出去就行了

然后变中缀的话就把他们变成一个整体就行

做题区

选A 记得到右括号的时候不用加栈里头,所以也就是5个在栈里

结果为 ab+acd+e/f-*-g+

后缀表达式求值

把刚才的东西拿过来先

操作数先猛猛存进栈里,遇到符号就出栈,然后合并再入栈

然后是到乘之后会变成的样子然后到加后的样子

后面就是EF/了,最后一个就是-,把栈中最后2个给减一下就得到了中缀表达式了

栈与函数调用的关系

最里面(g)的先执行完,反而f是最后执行完 ,符合先进后出的特点,也就是栈的特点

做题区

蜘蛛纸牌,看看后面有没有能顺序接的,没有就创造新的火车车轨

相关推荐
Ka1Yan20 分钟前
[链表] - 代码随想录 707. 设计链表
数据结构·算法·链表
scx2013100421 分钟前
20260112树状数组总结
数据结构·c++·算法·树状数组
宵时待雨35 分钟前
数据结构(初阶)笔记归纳3:顺序表的应用
c语言·开发语言·数据结构·笔记·算法
无限进步_2 小时前
【C语言&数据结构】二叉树遍历:从前序构建到中序输出
c语言·开发语言·数据结构·c++·算法·github·visual studio
菜鸟233号3 小时前
力扣518 零钱兑换II java实现
java·数据结构·算法·leetcode·动态规划
鱼跃鹰飞4 小时前
面试题:解释一下什么是全字段排序和rowid排序
数据结构·数据库·mysql
Ka1Yan5 小时前
[链表] - 代码随想录 206. 反转链表
数据结构·链表
学嵌入式的小杨同学5 小时前
C 语言实战:动态规划求解最长公共子串(连续),附完整实现与优化
数据结构·c++·算法·unity·游戏引擎·代理模式
良木生香6 小时前
【C语言进阶】文件操作的相关详解(1):
c语言·数据结构·c++
Ka1Yan6 小时前
[链表] - 代码随想录 203. 移除链表元素
数据结构·链表