- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数学表达式在栈中的运算示意图详情(超级经典)
数学表达式在栈中的运算示意图
栈的特性:后进先出。
运算表达式: 5+6*(1+2)-4
读取表达式: 5+6*(1+2)-4 #
运算逻辑说明:使用两个栈,一个是数据栈,一个是操作符栈。数据站用来存储读入的数据或者是运算的结果,操作符栈只存储操作符。
开始读取表达式,读取到 5 ,入数据栈。
继续读取表达式,读取到 + ,入操作符栈。(第一个操作符入栈,不考虑优先级)
继续读取表达式,读取到 6 ,入数据栈。
继续读取表达式,读取到 * ,和上个操作符比较,如果比已在栈中的操作符优先级高,则入栈,否则就运算。(* 优先级高于原有操作符 + ,入栈)
继续读取表达式,读取到 (,和已在栈顶的操作符比较, ( 优先级高于 * ,入栈。
继续读取表达式,读取到 1,入数据栈。
继续读取表达式,读取到 +,和已在栈顶的操作符比较,+ 优先级高于 ( ,入栈。
继续读取表达式,读取到 2,入数据栈。
继续读取表达式,读取到 ),和已在栈顶的操作符比较,)优先级低于 + ,此时此刻,+为栈中的最高优先级,开始运算。 从数据栈中出栈 2 和 1 ,从操作符栈中出栈 + ,进行运算,结果为 3,将3再次入数据栈。此时要记得脱括号。
继续读取表达式,读取到 - ,和已在栈顶的操作符比较,- 优先级低于 * ,即 * 在栈中是优先级最高的操作符,开始运算。从数据栈中出栈 3 和 6 ,从操作符栈中出栈 * ,运算得结果 18 再次存入数据栈。此时 – 再次准备入操作符栈。
继续读取表达式,仍然读取到 - ,和已在栈顶的操作符比较, - 优先级低于 + ,即 + 在栈中是优先级最高的操作符,开始运算,从栈中出栈 18 和 5 ,从操作符栈中出栈 + ,运算结果 23 再次存入数据栈。此时 – 再次准备入操作符栈。由于操作符栈中已无任何操作符,此时, - 入栈。
继续读取表达式,读取到 4 ,入数据栈。
将栈中位计算的数据和操作符进行运算,从数据栈中出栈4 和 23 ,从操作符栈中出栈 - ,运算结果 19 。说明:运算的时候是后出栈的数据减去先出栈的数据。即23 – 4 ,不是4 – 23 。
继续读取表达式,读取到 # ,入操作符栈,表示运算结束。
您可能关注的文档
最近下载
- 金蝶云星空 V7.7_产品培训_供应链_组织间结算.pptx VIP
- 基于CFD的某特种电动汽车空气动力学分析与改进设计.docx VIP
- 金蝶云星空+V7.5.1产品培训_财务_存货核算.pptx VIP
- 金蝶云星空标准版V8.1_产品学习_存货核算.pptx VIP
- 2025年材料进场验收、见证取样和送检制度.pdf VIP
- 金蝶云星空标准版V8.1_产品学习_出纳管理.pptx VIP
- 《我喜欢红色》朗诵词(转载).pdf VIP
- 金蝶云星空V8.1产品培训_制造_质量管理.pptx VIP
- 金蝶云星空 V8.1产品培训_财务_应付款管理.pptx VIP
- 《慢性肾脏病相关瘙痒管理中国专家共识(2025年版)》解读PPT课件.pptx VIP
原创力文档


文档评论(0)