摘 要通过数据结构这门课程,我们较深化的了解到了栈,栈是一种重要的线性结构,它广泛应用于各种软件系统中,因此在面对对象的程序设计中,它们是多型数据类型。本次试验我们将探究表达式求值问题,表达式求值是程序设计语言编译中的一个最基本的问题,它的实现是栈应用的又一个典型的例子。通过实在计算机中,算术表达式由常量、变量、运算符和括号组成。由于不同的运算符具有不同的优先级,又要考虑括号,因此,算术表达式的求值不可能严格地从左到右进行。因而在程序设计时,借助栈实现。用一个一维数组存放从键盘输入的表达式,表达式中可包含:加(+)、减(-)、乘(*)、除(/),括号((,))等运算符。要对输入的表达式进行检查,看是否是合格的表达式,如遇到错误则终止,不进行计算;例如:括号不配对、除数不为零等;输入的表达式可以是常量表达式,也可以是变量表达式;假如是常量表达式,则直接输出结果;假如是变量表达式,通过对变量的不断赋值,计算变量取不同值时表达式的结果。参加运算的操作数可以是整型,也可以是浮点型。关键词: 栈;先进先出;带括号的表达式;表达式求值目 录 1 绪论................................................................11.1 设计任务......................................................11.2 设计思想......................................................11.3 基础知识......................................................22 采纳类 c 语言定义相关的数据类型......................................42.1 设定栈的数据类型定义..........................................42.2 设定表达式求值的抽象数据类型定义:............................53 各模块的伪码算法....................................................73.1 存放操作符的模块:............................................73.2 存放操作数的模块:............................................73.3 栈的基本操作设置模块:........................................74 函数的调用图........................................................94.1 系统总结构图..................................................94.2 算法模块的调用关系............................................94.3 表达式求值流程图.............................................115 调试及测试...........