首页 > 编程知识 正文

后缀表达式求值过程,前缀后缀表达式

时间:2023-05-06 12:21:29 阅读:44319 作者:3752

P1-1449

@shuai:欢迎使用后缀表达式; 主题说明

后缀表达式是一个表达式,它在表达式中不再引用括号,将运算符号置于两个运算对象之后,所有计算都按照运算符号出现的顺序严格从左到右进行。 不需要考虑运算符的优先级。

例如,与3 * (52 ) 7对应的后缀的表现为3.5.2.-*7. @。 ’@’是公式结尾的符号。 “.”是操作数的结尾符号。

输入输出格式

输入格式:

输入:后缀表达式

输出格式:

输出:表达式的值

输入输出样本

输入示例#1:

3.5.2.-*7. @

输出示例#1:

16 源代码来了,,,,

# include bits/stdc.husingnamespacestd; stackintq; 字符串c; int main () {cinc; int a=0,b=0; int i,j; for(intk=0; kc.length (; k () if ) c[k]=='@ ' ) { break; }elseif(c[k]=='.' ) q.push ) a; b=0,a=0; }elseif(c[k]='9'c[k]='0' ) { a=b*10 c[k]-'0'; b=a; }else{if(c[k]==' ' ) i=q.top )、q.pop )、j=q.top )、q.pop )、q.push ) j ); if(c ) k )=='-' ) i=q.top (,q.pop )、j=q.top )、q.pop )、q.push ) j-I ); if(c ) k )=='* ' ) i=q.top )、q.pop )、j=q.top )、q.pop )、q.push ) j*I ); if(c ) k )=='/' ) i=q.top (,q.pop )、j=q.top )、q.pop )、q.push ) j/I ); p.pop(}printf ) ' %d ',q.top ); }代码解释:

后缀表达式,明显的堆栈裸体问题,本蒻刚学堆栈,说明强力堆栈来了。 构想:请注意堆栈、外堆栈、外堆栈……c[k]=‘“操作员”。 之后请注意pop (),啊,标题的' . ' 也就是说,请注意.进入数组,最后只剩下堆栈的元素。 不能直接这样读的学生请看本人的另一篇文章鸭子。 有容易理解的模拟堆栈哦,星期五也是鸭子,运行图片如下

QQ

推荐主题:

树: https://www.Luo gu.org/problem new/show/p 1087

首先对数列进行排序: https://www.Luo gu.org/problem new/show/p 10370

队列时间表: https://www.Luo gu.org/problem new/show/p 1060

发现错误,困惑,联系作者: 1939096278@qq.com

请咨询---------qaq----;

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。