前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >中缀表达式变为后缀表达式

中缀表达式变为后缀表达式

作者头像
用户1624346
发布2018-04-17 17:26:07
1.1K0
发布2018-04-17 17:26:07
举报
文章被收录于专栏:calmoundcalmound

中缀表达式“9+(3-1)*3+10/2”转化为后缀表达式“9 3 1-3*+ 10 2/+”

中缀表达式转后缀表达式的方法: 1.遇到操作数:直接输出(添加到后缀表达式中) 2.栈为空时,遇到运算符,直接入栈 3.遇到左括号:将其入栈 4.遇到右括号:执行出栈操作,并将出栈的元素输出,直到弹出栈的是左括号,左括号不输出。 5.遇到其他运算符:加减乘除:弹出所有优先级大于或者等于该运算符的栈顶元素,然后将该运算符入栈 6.最终将栈中的元素依次出栈,输出。

实现9+(3-1)*3+10/2,栈=空 1.9输出          表达式=9                         栈=空 2.+入栈          表达式=9                         栈=+ 3.(入栈          表达式=9                         栈=+( 4.3输出          表达式=9 3                       栈=+( 5.-入栈          表达式=9 3                       栈=+(- 6.1输出          表达式=9 3 1                     栈=+( - 7.)比较栈顶      表达式=9 3 1 -                   栈=+ 8.*入栈          表达式=9 3 1 -                   栈=+* 9.输出,         表达式=9 3 1 - 3                 栈=+* 10.+比较栈顶     表达式=9 3 1 - 3 * +             栈=+ 11.10输出        表达式=9 3 1 - 3 * + 10          栈=+ 12./入栈         表达式=9 3 1 - 3 * + 10          栈=+ / 13.2输出         表达式=9 3 1 - 3 * + 10 2        栈=+ / 14.栈清空        表达式=9 3 1 - 3 * + 10 2 / +    栈=空

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档