当前位置: 首页 > news >正文

栈的应用(表达式求值)

文章目录

  • 三种表达式的形式
  • 中缀表达式 转 后缀表达式
    • 手算方法
    • 机算
  • 中缀表达式 转 前缀表达式
    • 手算方法
    • 机算
  • 总结

算数表达式由三部分组成:操作数、运算符、界限符(界限符是必不可少的,反映了计算的先后顺序)

三种表达式的形式

首先要分清三种表达式的写法,这是所有计算的基础:
注意:数字出现的左右先后顺序不能改变。

表达式类型定义示例(1+2 )和 (3+4)*5)特点
中缀表达式(Infix)运算符在两个操作数中间1 + 2
(3 + 4) * 5
人类习惯,但计算机难处理(需处理括号和优先级)。
后缀表达式(逆波兰,RPN)运算符在两个操作数之后1 2 +
3 4 + 5 *
无括号,运算符按出现顺序处理,计算机最爱。较多
前缀表达式(波兰,PN)运算符在两个操作数之前+ 1 2
* + 3 4 5
较少使用。

中缀表达式 转 后缀表达式

手算方法

中缀转后缀的手算方法:
①确定中缀表达式中的各个运算符的运算顺序(运算顺序不唯一,因此对应的后缀表达式也不唯一)
②选择下一个运算符,按照【左操作符 右操作符 运算符】的方式组合成一个新的操作数;
③如果还有运算符没被处理,就继续②
“左优先”原则:只要左边的运算符能先计算,就优先算左边的(可保证运算顺序唯一)


后缀表达式的手算方法:
从左往右扫描,每遇到一个运算符,就让运算符前面最近的两个操作数执行对应运算,合体为一个操作数。
注意:两个操作数的左右顺序。

机算

如手算的所示体现出来的特点
最后出现的操作数先被运算(即后进先出 LIFO)

后缀表达式的计算(机算)
用栈实现后缀表达式的计算:
①从左往右扫描下一个元素,直到处理完所有元素;
②若扫描到操作数则压入栈,并返回到①;否则执行③;
③若扫描到运算符,则弹出两个栈顶元素,执行相应的运算,运算结果回栈(压回栈顶),回到①;

注意:(后缀表达式的机算)先出栈的是“右操作数”

如图所示,A+B运算出结果后,则结果回栈(压回栈顶)。
若表达式合法,则最后栈中只会留下一个元素,其就是最终结果

中缀表达式 转 前缀表达式

手算方法

中缀转前缀的手算方法:
①确定中缀表达式中的各个运算符的运算顺序(运算顺序不唯一,因此对应的后缀表达式也不唯一)
②选择下一个运算符,按照【 运算符 左操作符 右操作符 】的方式组合成一个新的操作数;
③如果还有运算符没被处理,就继续②
“右优先”原则:只要右边的运算符能先计算,就优先算右边的(可保证运算顺序唯一)

机算

前缀表达式的计算(机算)
用栈实现前缀表达式的计算:
①从右往左扫描下一个元素,直到处理完所有元素;
②若扫描到操作数则压入栈,并返回到①;否则执行③;
③若扫描到运算符,则弹出两个栈顶元素,执行相应的运算,运算结果回栈(压回栈顶),回到①;

注意:(前缀表达式的机算)先出栈的是“左操作数”

总结

下图为手算的运算优先原则。
将中缀转后缀时:符号运算左优先,
将后缀转中缀时:从左到右(也可以理解为左优先,但右边是不可行的,因为运算符在右边)
中缀转前缀,前缀转中缀同理。

机算时:

  • 后缀:先出栈的为右操作数
  • 前缀:先出栈的为左操作数
http://www.jsqmd.com/news/1244443/

相关文章:

  • 2026年国产三坐标测量仪企业选型实用参考指南 - 奔跑123
  • 2026年庐江县钟点工家政服务机构服务选择实用指南 - 热点品牌推荐
  • 2026年通州区房顶漏水检测维修选哪家 实测靠谱服务指南 - 热点品牌推荐
  • 找江苏季铵盐消毒剂优质厂商要注意哪些细节? - 热点品牌推荐
  • 2026年复合材料类环氧预浸料平价优质厂家汇总推荐 - 奔跑123
  • 2026年杭州本地靠谱的分汽缸选购选厂实用参考指南 - 热点品牌推荐
  • 2026年最新英语写作批改平台挑选指南 附实用避坑技巧
  • 学生综合素质评价专业服务商
  • 2026年天津遗产继承律师推荐清单:5位办案经验丰富的实力派律师 - 本地品牌推荐
  • 金水区老旧卫生间重做防水服务公司实用选择攻略 - 热点品牌推荐
  • 唐山百达翡丽**地址及售后热线电话2026年7月最新公告,客服中心**信息 - 百达翡丽官方售后中心
  • 成都新能源代步车正规车行怎么选?2026年购车指南 - 热点品牌推荐
  • 2026年食品加工配套流态化单体速冻机公司哪家可靠 - 热点品牌推荐
  • 2026年金华本地国标全新料树脂瓦源头厂家哪家专业 - 热点品牌推荐
  • 2026年环氧砂浆地坪漆工厂哪家好 广西区域选型实用指南 - 热点品牌推荐
  • 七款 Java 工作流引擎「二开能力」怎么比
  • 2026年安徽农村独栋自建房别墅设计怎么联系靠谱服务商 - 热点品牌推荐
  • 告别手慢无!B站抢票神器biliTickerBuy终极使用指南
  • 深圳商标设计如何用AI算法生成“会思考”的品牌符号?
  • 2026年7月亲身探访嘉兴亨得利**名表服务中心|全部地址与售后热线 - 亨得利官方博客
  • 200行代码硬核读取ext4磁盘文件
  • 从单点好评到指数级传播:AI副业主理人必须掌握的4层口碑渗透模型(含ROI测算表)
  • 测试文章 001644 - 请忽略
  • 2026年北京耐黄变隐形车衣供应商选购实用攻略 - 热点品牌推荐
  • 2026 Cloudflare 5秒盾解决指南:无限验证码、403拦截与Bot检测优化方法
  • uv 系列(七):CI/CD、Docker 与私有索引——生产级交付
  • LangChain Agent开发入门:从零构建智能决策AI
  • 如何在5分钟内搭建你的微信AI智能助手:多平台IM自动回复终极指南
  • 宝玑石家庄2026年7月最新**售后网点地址与客户服务热线**公告 - 亨得利官方服务中心
  • 2026年神农架k式板房生产厂家选购全流程实用指南 - 热点品牌推荐