- 6
- 0
- 约1.31万字
- 约 17页
- 2016-12-15 发布于江苏
- 举报
扬州大学信息工程学院
《数据结构》
---课程设计报告
题目: 《表达式求值》
信息1301
学号: 131405127
姓名:
指导教师:
一、设计题目
表达式求值表达式求值是程序设计语言编译中的一个最基本的问题,它的实现是栈应用的一个典型实例。为了实现表达式求值这一目标,本程序采用的是一种简单直观、广为使用的算法,即“算符优先法”。
在该程序中,任何一个表达式都被看成是由操作数和运算符组成。因此在实现算法的时候我用到了两个工作栈,一个称作Stack_TR,用以寄存运算符;另一个称作Stack_ND,用以寄存操作数或运算结果。
算法的基本思想是:
依次读入表达式中的字符串单元,若是操作数字符串则将其转化为操作数后压入Stack_ND栈内,若是运算符字符串则转化为对应的运算符后和Stack_TR栈中的栈顶运算符进行优先级比较,之后根据优先级关系作相应的操作,
循环1)、2)两步直至整个表达式求值完毕(即Stack_TR栈顶元素和当前读入的运算符均为“#”)。
本程序支持超过一位数字的输入,当然也支持小数以及常用的三角函数in、cos、an。那么将数字、分隔符、操作符以及三角函数字符串的分离就是首先要解决的问题,我的解决方案是这样的:
首先,由函数Expression将空格进行过滤,同时该函数
原创力文档

文档评论(0)