数据结构笔记之十一栈的应用之表达式求值实现.docxVIP

  • 3
  • 0
  • 约6.65千字
  • 约 10页
  • 2017-11-10 发布于江苏
  • 举报

数据结构笔记之十一栈的应用之表达式求值实现.docx

数据结构笔记之十一栈的应用之表达式求值实现

11、蛤蟆的数据结构笔记之十一栈的应用之表达式求值实现 本篇名言:“人生不售来回票,一旦动身,绝不能复返。” 继续栈应用实现,这次是来看下表达式求值的栈实现。 表达式求值 表达式求值是设计语言编译中的一个基本问题,它的实现是栈应用的又一个典型例子。 任何一个表达式都是由操作数(Operand)、运算符(operator)和界限符(delimiter)组成。 操作数可以是常数也可以是变量或变量的标识符。 运算符可以分为算术运算符、关系运算符和逻辑运算符三类。 界限符有左右括号和表达式结束符。 几个算术四则运算的规则: 先乘除,后加减; 从左算到右 先括号内,后括号外 此处实现,假定不出现语法错误,否则过于复杂,蛤蟆也不能理解了。 运算符优先级 对于连个相继出现的操作符θ1和θ2?有三种关系:大于、等于和小于。由此可以列出“+-*/”之间的优先级。如下表: ?+-*/()#+-*/(=?)?#?= 加减乘除优先性都低于“(”但是高于“)”,由运算从左到右可知,当θ1=θ2?,令θ1θ2 为了算法简洁,在表达式的左边和右边虚设一个“#”,这一对“#”表示一个表达式求值完成。 “(”=“)”当一对括号相遇时表示括号内已运算完成。 “)”和

文档评论(0)

1亿VIP精品文档

相关文档