用栈实现计算后缀表达式(0-9数值运算示例)
一、原理
可以先建立一个栈S 。从左到右读表达式,如果读到操作数就将它压入栈S中,如果读到n元运算符(即需要参数个数为n的运算符)则取出由栈顶向下的n项按操作符运算,再将运算的结果代替原栈顶的n项,压入栈S中 。如果后缀表达式未读完,则重复上面过程,最后输出栈顶的数值则为结束。
二、代码
int calculate(string s)
{int temp1,temp2,temp3;int len=s.length();stack<int> st;for(int i=0;i<len;i++){if(s[i]>='0' && s[i]<='9'){int n=s[i]-48;st.push(n);}else{temp1=st.top();st.pop();temp2=st.top();st.pop();if(s[i]=='+'){temp3=temp2+temp1;}else if(s[i]=='-'){temp3=temp2-temp1;}else if(s[i]=='*'){temp3=temp2*temp1;}else if(s[i]=='/'){temp3=temp2/temp1;}st.push(temp3);}}return st.top();
}
用栈实现计算后缀表达式(0-9数值运算示例)相关推荐
- 栈应用(中缀表达式转后缀表达式并计算后缀表达式的值)
[0]README 0.1) 本文旨在总结 中缀表达式转后缀表达式并计算后缀表达式的值 的步骤,并给出源代码实现: 0.2) 本文中涉及到的源代码均为原创,是对中缀转后缀和计算后缀的简单实现,(旨在理 ...
- python栈应用_栈应用之 后缀表达式计算 (python 版)
栈应用之 后缀表达式计算 (python 版) 后缀表达式特别适合计算机处理 1. 中缀表达式.前缀表达式.后缀表达式区别 中缀表达式:(3 - 5) * (6 + 17 * 4) / 3 17 * ...
- C++做四则运算的MFC计算器(二)栈转换和计算后缀表达式
上篇写了MFC界面搭建,这篇就写实现计算.涉及到数据结构,对新手很不友好. 虽然是MFC程序,但是能灵活地分离后台代码,自行构建控制台程序. 上一篇文章链接:C++做四则运算的MFC计算器(一)MFC ...
- 有趣的数据结构算法10——后缀表达式(PRN)介绍及利用栈计算后缀表达式的结果
有趣的数据结构算法10--后缀表达式(PRN)介绍及利用栈计算后缀表达式的结果 解题思路 实现代码 GITHUB下载连接 在前一天已经利用栈完成2进制到8进制的转换.但是栈的应用方面还有很多,本次我将 ...
- 栈应用:后缀表达式求值
在上一篇博客 栈应用:中缀表达式转后缀表达式 中我们知道如何通过栈将中缀表达式转为后缀表达式,这次我们继续用栈 来实现后缀表达式求值,结合上一篇博客. 上一篇博客中是用c语言实现的,由于c语言中不支持 ...
- # 20155224 第十一周 课堂练习《计算后缀表达式的值》
20155224 第十一周 课堂练习<计算后缀表达式的值> 代码实现 操作数和运算符的入栈与计算如下: //如果是运算符,调用isOperatorif (isOperator(token) ...
- 备战NOI 数据结构——栈与单调栈(stack) 以及后缀表达式
栈 stack 引入 栈的概念 代码实现 定义和初始化(init) 入栈(push) 出栈(pop) 访问栈顶元素(query) 查询栈的元素个数(size) 判断是否为空(empty) 清空栈(cl ...
- java简易计算机(用栈实现中缀转后缀,计算后缀表达式)
这学期java课的一个小作业,用java编一个小计算器. 个人认为要点在于: 1.计算机的布局,即按钮和输出框的布局需要知道怎么操作,按钮的大小和字体的大小颜色.不同布局中按钮的改变大小等等 2.用栈 ...
- 栈的应用实例——计算后缀表达式
用户输入一个后缀表达式,程序计算该后缀表达式的值并输出结果: /* postfix_expression.c */#include "stack.h" #include <s ...
最新文章
- linux cp命令 前面,盘点Linux命令之Linux cp命令使用大全
- 文巾解题 784. 字母大小写全排列
- 剑指offer:写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。
- asp功放怎么装_汽车功放怎么安装 汽车功放安装调试方法【详解】
- Linux(centos7)安装nginx并配置代理
- yii2 ajax分页,Yii框架分页技术实例分析
- 线上课堂:ernetes Operator开发范式 - TiDB
- 假如我结婚以后父母把房子过户到我一人名下,属于夫妻共同财产嘛?
- Linux iostat和vmstat命令
- android横向纵向切换,【报Bug】安卓竖屏切换到横屏后,再切换回竖屏,不能正常还原...
- 在写事件函数的时候function(e)当中的e是什么意思
- C语言读取文件所有内容
- 天下手游一直显示连接服务器,《天下手游》4月11日合服公告
- 奇葩事情,某些网页打不开
- github提交代码出现remote: Support for password authentication was removed on August 13, 2021.?
- 5大经典排序算法在淘宝“有好货”场景的实践
- 信息系统项目管理师核心考点(八)软件集成技术
- 如何用java打印1-100_在java中使用10个线程打印1到100
- 三台ECS使用kubeadm快速部署最新版本K8sv1.21.3
- 使用 Chrome 浏览器插件 Web Scraper 10分钟轻松实现网页数据的爬取