一、原理

可以先建立一个栈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数值运算示例)相关推荐

  1. 栈应用(中缀表达式转后缀表达式并计算后缀表达式的值)

    [0]README 0.1) 本文旨在总结 中缀表达式转后缀表达式并计算后缀表达式的值 的步骤,并给出源代码实现: 0.2) 本文中涉及到的源代码均为原创,是对中缀转后缀和计算后缀的简单实现,(旨在理 ...

  2. python栈应用_栈应用之 后缀表达式计算 (python 版)

    栈应用之 后缀表达式计算 (python 版) 后缀表达式特别适合计算机处理 1.  中缀表达式.前缀表达式.后缀表达式区别 中缀表达式:(3 - 5) * (6 + 17 * 4) / 3 17 * ...

  3. C++做四则运算的MFC计算器(二)栈转换和计算后缀表达式

    上篇写了MFC界面搭建,这篇就写实现计算.涉及到数据结构,对新手很不友好. 虽然是MFC程序,但是能灵活地分离后台代码,自行构建控制台程序. 上一篇文章链接:C++做四则运算的MFC计算器(一)MFC ...

  4. 有趣的数据结构算法10——后缀表达式(PRN)介绍及利用栈计算后缀表达式的结果

    有趣的数据结构算法10--后缀表达式(PRN)介绍及利用栈计算后缀表达式的结果 解题思路 实现代码 GITHUB下载连接 在前一天已经利用栈完成2进制到8进制的转换.但是栈的应用方面还有很多,本次我将 ...

  5. 栈应用:后缀表达式求值

    在上一篇博客 栈应用:中缀表达式转后缀表达式 中我们知道如何通过栈将中缀表达式转为后缀表达式,这次我们继续用栈 来实现后缀表达式求值,结合上一篇博客. 上一篇博客中是用c语言实现的,由于c语言中不支持 ...

  6. # 20155224 第十一周 课堂练习《计算后缀表达式的值》

    20155224 第十一周 课堂练习<计算后缀表达式的值> 代码实现 操作数和运算符的入栈与计算如下: //如果是运算符,调用isOperatorif (isOperator(token) ...

  7. 备战NOI 数据结构——栈与单调栈(stack) 以及后缀表达式

    栈 stack 引入 栈的概念 代码实现 定义和初始化(init) 入栈(push) 出栈(pop) 访问栈顶元素(query) 查询栈的元素个数(size) 判断是否为空(empty) 清空栈(cl ...

  8. java简易计算机(用栈实现中缀转后缀,计算后缀表达式)

    这学期java课的一个小作业,用java编一个小计算器. 个人认为要点在于: 1.计算机的布局,即按钮和输出框的布局需要知道怎么操作,按钮的大小和字体的大小颜色.不同布局中按钮的改变大小等等 2.用栈 ...

  9. 栈的应用实例——计算后缀表达式

    用户输入一个后缀表达式,程序计算该后缀表达式的值并输出结果: /* postfix_expression.c */#include "stack.h" #include <s ...

最新文章

  1. linux cp命令 前面,盘点Linux命令之Linux cp命令使用大全
  2. 文巾解题 784. 字母大小写全排列
  3. 剑指offer:写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。
  4. asp功放怎么装_汽车功放怎么安装 汽车功放安装调试方法【详解】
  5. Linux(centos7)安装nginx并配置代理
  6. yii2 ajax分页,Yii框架分页技术实例分析
  7. 线上课堂:ernetes Operator开发范式 - TiDB
  8. 假如我结婚以后父母把房子过户到我一人名下,属于夫妻共同财产嘛?
  9. Linux iostat和vmstat命令
  10. android横向纵向切换,【报Bug】安卓竖屏切换到横屏后,再切换回竖屏,不能正常还原...
  11. 在写事件函数的时候function(e)当中的e是什么意思
  12. C语言读取文件所有内容
  13. 天下手游一直显示连接服务器,《天下手游》4月11日合服公告
  14. 奇葩事情,某些网页打不开
  15. github提交代码出现remote: Support for password authentication was removed on August 13, 2021.?
  16. 5大经典排序算法在淘宝“有好货”场景的实践
  17. 信息系统项目管理师核心考点(八)软件集成技术
  18. 如何用java打印1-100_在java中使用10个线程打印1到100
  19. 三台ECS使用kubeadm快速部署最新版本K8sv1.21.3
  20. 使用 Chrome 浏览器插件 Web Scraper 10分钟轻松实现网页数据的爬取

热门文章

  1. Win10系统重装 华硕笔记本电脑
  2. 计算个人所得税,北大青鸟S2 上机第二阶段第一题
  3. u盘启动计算机的几种方式,U盘启动那种模式最好?快试试这个方法!
  4. 不知不觉openGL已经到4.5了
  5. STM32(Cortex-M3)中的优先级概念
  6. mediasoup json 通信协议2--room.js和router.cpp信令
  7. TWaver家族新成员 — Legolas工业自动化设计平台
  8. 自己整理的五个常用的焦点图
  9. 使用PowerShell下载必应图片
  10. 字符串写入到json文件