电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

数据结构算术表达式求值实验报告

数据结构算术表达式求值实验报告_第1页
1/24
数据结构算术表达式求值实验报告_第2页
2/24
数据结构算术表达式求值实验报告_第3页
3/24
软件技术基础实验报告实验名称: 表达式计算器 系 别: 通信工程 年 级: 班 级: 学生学号: 学生: 《数据结构》课程设计报告 题目 简易计算表达式的演示[题目要求]要求:实现基本表达式计算的功能输入:数学表达式,表达式由整数和“+”、 “-”、“×”、“/”、“(”、“)”组成输出:表达式的值基本操作:键入表达式,开始计算,计算过程和结果记录在文档中难点:括号的处理、乘除的优先级高于加减1.前言在计算机中,算术表达式由常量、变量、运算符和括号组成。由于不同的运算符具有不同的优先级,又要考虑括号,因此,算术表达式的求值不可能严格地从左到右进行。因而在程序设计时,借助栈实现。算法输入:一个算术表达式,由常量、变量、运算符和括号组成(以字符串形式输入)。为简化,规定操作数只能为正整数,操作符为+、-*、/、=,用#表示结束。算法输出:表达式运算结果。算法要点:设置运算符栈和运算数栈辅助分析算符优先关系。在读入表达式的字符序列的同时,完成运算符和运算数的识别处理,以与相应运算。2.概要设计2.1 数据结构设计任何一个表达式都是由操作符,运算符和界限符组成的。我们分别用顺序栈来寄存表达式的操作数和运算符。栈是限定于紧仅在表尾进行插入或删除操作的线性表。顺序栈的存储结构是利用一组连续的存储单元依次存放自栈底到栈顶的数据元素,同时附设指针 top指示栈顶元素在顺序栈中的位置,base 为栈底指针,在顺序栈中,它始终指向栈底,即top=base 可作为栈空的标记,每当插入新的栈顶元素时,指针 top 增 1,删除栈顶元素时,指针 top 减 1。2.2 算法设计为了实现算符优先算法。可以使用两个工作栈。一个称为 OPTR,用以寄存运算符,另一个称做 OPND,用以寄存操作数或运算结果。1.首先置操作数栈为空栈,表达式起始符”#”为运算符栈的栈底元素;2.依次读入表达式,若是操作符即进 OPND 栈,若是运算符则和 OPTR 栈的栈顶运算符比较优先权后作相应的操作,直至整个表达式求值完毕(即 OPTR 栈的栈顶元素和当前读入的字符均为”#”)。2.3 ADT 描述ADT Stack{数据对象:D={ |∈ElemSet,i=1,2,…,n, n≧0}数据对象:R1={<>|,,i=2,…,n}约定端为栈顶,端为栈底。基本操作: InitStack(&S) 操作结果:构造一个空栈 S。 GetTop(S) 初始条件:栈 S 已存在。 操作结果:用 P 返回 S 的栈顶元素。 Push(&S,ch) 初始条件:栈 S 已存在。 操作...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

数据结构算术表达式求值实验报告

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部