数据结构课设(表达式求解).docVIP

  • 10
  • 0
  • 约1.5万字
  • 约 27页
  • 2018-11-30 发布于江苏
  • 举报
数据结构课设(表达式求解)

课题名称:表达式求解 班级:0008202 学号:150830114 姓名:陈鹏 指导教师:高航 本程序使用栈的数据结构,定义了两个栈OPTR和OPND,分别存储操作符和运算符。先读取一个以#号结束的表达式,存储在一个字符型数组中。首先通过判断函数judge判断该表达式的合法性,如果不合法,则重新输入,然后调用函数EvaluateExpression(char n[]),进行运算。 主要的函数EvaluateExpression(char n[])是根据运算符优先法来实行的。首先判断数组的第一个字符是不是‘#’,如果是,则元素表达式读取完毕,程序也运行结束。如果不是,则进行一下操作。判断数组中的元素是运算数还是运算符,运算数通过函数atoi(char n[])取出,进入OPND栈。然后将后面的部分向前移。如果是运算符,则将该运算符和OPTR栈栈顶元素的优先级进行比较。如果该运算符优先级大于OPTR栈顶元素,则运算符进栈。将后面的部分往前移。如果该运算符优先级等于OPTR栈顶元素,则栈顶元素出栈,将该运算符后面的部分前移。如果该运算符优先级小于OPTR栈顶元素,则栈顶元素与OPND栈顶元素与第二个元素出栈,两运算数进行与栈顶元素相对应的运算,再将运算结果进OPND栈。如果该运算符优先级仍低于OPTR栈栈顶元素或两者优先级相等,则重复上述过程,直至该运算符优先级高于栈顶元素。 程序设计

文档评论(0)

1亿VIP精品文档

相关文档