前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >关于栈的三种表达式

关于栈的三种表达式

作者头像
切图仔
发布2022-09-14 16:14:01
2800
发布2022-09-14 16:14:01
举报
文章被收录于专栏:生如夏花绚烂生如夏花绚烂

前缀表达式(波兰表达式)

前缀表达式也称为波兰表达式,前缀表达式的运算符位于操作数之前 如 ( 3 + 4 ) * 5 - 6 对应的前缀表达式为 - * + 3 4 5 6

前缀表达式的计算机求值

从右至左扫描表达式,遇到数值时,将数字压入栈中,遇到运算符时,弹出栈顶的两个数,用运算符对它们做相应的计算,并将结果入栈,重复执行 ,最后留在栈里的元素即为结果

如 (3 + 4 )5 - 6 的前缀表达式为 ` -+ 3 4 5 61.从右至左扫描,将 6、5、4、3压入栈 2.遇到 + 运算符时,弹出3和4计算出3+4=7,再将7入栈 3.接下来是*运算符,弹出7和5,计算得出35,再次入栈 4.最后是-`运算符,计算出35-6即位29,此时29即为最终结果

中缀表达式

中缀表达式,即为我们平常看到的表达式,人理解起来很容易 如 ( 3 + 4 ) * 5 - 6 中缀表达式计算机理解起来困难 如 完成一个中缀表达式的计算(https://www.zihanzy.com/articles/327)

为了方便,一般我们要将中缀表达式,转换为前缀或后缀表达式在给计算机进行运算。 如 完成一个后缀表达式的计算 (https://www.zihanzy.com/articles/331

后缀表达式(逆波兰表达式)

后缀表达式也称为逆波兰表达式与前缀表达式相似,只是运算符位于操作数之后 如 ( 3 + 4 ) * 5 - 6对应的后缀表达式为 3 4 + 5 * 6 -

a + b = a b + a+(b-c) = a b c - + a + (b - c) * d = a b c - d *

后缀表达式计算求值

从左至右扫描表达式,遇到数值时,将数字压入栈中,遇到运算符时,弹出栈顶的两个数,用运算符对它们做相应的计算,并将结果入栈,重复执行 ,最后留在栈里的元素即为结果

如 (3 + 4 ) 5 - 6 的前缀表达式为 ` 3 4 + 5 6 - 1.从左至右扫描,将3 4 压入栈 2.遇到 + 运算符时,弹出4和3计算出3+4=7,再将7入栈 3.接下来是*运算符,弹出5和7,计算得出35,再次入栈 4.最后是-`运算符,计算出35-6即位29,此时29即为最终结果

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2021-02-01 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前缀表达式(波兰表达式)
    • 前缀表达式的计算机求值
    • 中缀表达式
    • 后缀表达式(逆波兰表达式)
      • 后缀表达式计算求值
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档