表达式求值

原创 2007年10月13日 17:27:00

这里介绍的是将中缀表达式转换成后缀表达式,然后求值。 

中缀表达式转换成后缀表达式需要一个栈来保存操作符。

转换的具体规则如下:

从输入中读取的字符 动作
操作数 写至输出
左括号( 推其入栈
右括号)

栈非空时,重复以下步骤:

弹出一项,若项不为(,则写至输出。项为(则退出循环

操作符(opThis)

若栈为空,推入opThis,否则,栈非空时,重复步骤:

弹出一项

若项为(,推其入栈

若项为操作符(opTop),则

若opTop<opThis,推入opTop

若opTop>=opThis,输出opTop

若opTop<opThis则退出循环,或项为(,推入opThis

没有更多项 当栈非空时,弹出项目,将其输出

后缀表达式求值如下:

从后缀表达式中读取的元素 执行的动作
操作时 入栈
操作符 从栈中提出两个操作数,用操作符将其运算。结果入栈

 

c语言:表达式求值实现(包含加减乘除括号)

这道题不难,但是当你认真去编代码的时候,还是要考虑好多细节,所以不能只停留在看懂的层面上,不去实践你永远不知道你到底掌握了没有,加油!   之前的表达式求值不包括括号运算,现将改进后的代码和源代码粘...
  • qq_28598203
  • qq_28598203
  • 2016年04月12日 09:50
  • 3521

C++ - 表达式求值顺序

在C++里,表达式求值顺序一直是一个大坑,这是由于为了给编译器更大的优化空间,C++对表达式的求值做了许多非常灵活的规定(其实就是不规定,编译器愿意怎么实现都可以)。这些灵活的规定也给C++带来了许多...
  • fefe82
  • fefe82
  • 2014年07月15日 22:35
  • 2851

中缀表达式求值(Java)

思想: 为实现运算符优先算法,可以使用两个栈。一个是OPTR,存放运算符;一个是OPND,存放运算结果。 1.首先置OPND为空栈,表达式起始符“#”为栈底元素; 2.依次读入表达式中每个元素,...
  • u011102153
  • u011102153
  • 2015年04月09日 12:02
  • 657

表达式求值算法

快速精确的对数学表达式求值 http://www.ibm.com/developerworks/cn/java/j-w3eva/ 快速精确的对数学表达式求值 使用这个...
  • cpp597455873
  • cpp597455873
  • 2015年03月20日 11:16
  • 452

华为OJ(表达式求值)

描述 给定一个字符串描述的算术表达式,计算出结果值。输入字符串长度不超过100,合法的字符包括”+, -, *, /, (, )”,”0-9”,字符串内容的合法性及表达式语法的合法性由做题者检查。本...
  • yiqiwangxi
  • yiqiwangxi
  • 2015年08月22日 15:21
  • 955

数据结构 表达式求值

实现表达式求值,以及表达式中括号是否匹配。 实现方法,建立两个栈,一个用来存放操作数,一个用来存放运算符。判断运算符优先级来确定什么时候出栈,利用一个数组去表示优先级 头文件代码如下: #ifndef...
  • ZhongQi0808
  • ZhongQi0808
  • 2015年08月05日 20:13
  • 577

中缀表达式求值

用栈的数据结构来计算表达式的值,很经典
  • u013412497
  • u013412497
  • 2014年10月05日 10:47
  • 3502

C++ 实现 算数表达式求值

好不容易抽出点时间来复习一下数据结构和算法。 看到堆栈部分。有2道题目,第一道是计算C系列括号匹配校验。第二道是计算算数表达式。 第一道题是思路是 跳过 ' ""字符串,/* // 注释以后。 ...
  • watsy
  • watsy
  • 2013年11月21日 20:22
  • 8986

常用数据结构栈的应用—-表达式求值

常用数据结构栈的应用—-表达式求值 常用数据结构栈的应用-表达式求值 栈 表达式求值 后缀表达式求值 中缀表达式转后缀表达式 代码示例栈 栈是常用的数据结构,栈又称堆栈,是一种受限的线性表。其限制...
  • u014532901
  • u014532901
  • 2016年09月13日 11:53
  • 1387

后缀表达式求值的算法实现

后缀表达式编辑 不包含括号,运算符放在两个运算对象的后面,所有的计算按运算符出现的顺序,严格从左向右进行(不再考虑运算符的优先规则,如:(2 + 1) * 3 , 即2 1 + 3 * 运...
  • ColorlessSilver
  • ColorlessSilver
  • 2014年12月31日 19:44
  • 4050
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:表达式求值
举报原因:
原因补充:

(最多只允许输入30个字)