- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
利用栈实表达式求解
线性表及栈
PAGE
数学与计算机学院
课程设计说明书
课 程 名 称: 数据结构与算法A设计实践
课 程 代 码: 6015059
题 目 二: 利用栈实现表达式求解
年级/专业/班: 2011/信科/
学 生 姓 名: 彭X
学 号: 312011070102XXX
开 始 时 间: 2014 年 5 月 28 日
完 成 时 间: 2014 年 6 月 28 日
课程设计成绩:
学习态度及平时成绩(30)
技术水平与实际能力(20)
创新(5)
说明书撰写质量(45)
总 分(100)
指导教师签名: 年 月 日
目 录
3 实验二…………………………………………………………………………9
3.1整体设计思路………………………………………………………………9
3.2 编码…………………………………………………………………………10
3.3 程序演示……………………………………………………………………13
总结………………………………………………………………………………15
参考文献…………………………………………………………………………16
摘 要
随着计算机的普遍应用与日益发展,其应用早已不局限于简单的数值运算,数据结构与算法的学习就是为以后利用计算机资源高效地开发非数值处理的计算机程序打下坚实的理论、方法和技术基础。数据结构与算法旨在分析研究计算机加工的数据对象的特性,以便选择适当的数据结构和存储结构,从而使建立在其上的解决问题的算法达到最优。
第二个实验是利用栈实现表达式求解,要求只考虑+、-、*、/四种数学运算还有只考虑圆括号参与运算。
关键词:数据结构与算法 线性表 链式结构 栈 表达式求解
1 引 言
1问题的提出
数据结构课程设计是重要地实践性教学环节。在进行了程序设计语言课和 《数据结构与算法》课程教学的基础上,设计实现相关的数据结构经典问题,有助于加深对数据结构课程的认识。本课程设计是数据结构中的一个关于线性表链式表示的实现还有用栈实现表达式求解,此课程设计要求对栈存储结构和链表存储结构非常熟悉,并能熟练使用它们。
C语言
C语言既有高级语言的特点,又具有汇编语言的特点;既是一个成功的系统设计语言,有时一个使用的程序设计语言;既能用来编写不依赖计算机硬件的应用程序,又能用来编写各种系统程序;是一种受欢迎、应用广泛的程序设计语言。
C语言发展过程
1973年,美国贝尔实验室的D.M.RITCHIE在B语言的基础上最终设计出了一种新的语言,他取了BCPL的第二个字母作为这种语言的名字,这就是C语言。
1977年Dennis M.Ritchie 发表了不依赖于具体机器系统的C语言编译文本《可移植的C语言编译程序》。
1978年Brian W.Kernighian和Dennis M.Ritchie出版了名著《The C Programming Language》,从而使C语言成为目前世界上流行最广泛的高级程序设计语言。
1.4任务
题目二:利用栈实现表达式求解
第二个实验是使用栈来解决表达式中的求解优先问题。要求(1)只考虑+、-、*、/四种数学运算;(2)只考虑圆括号( )参与运算。
3 实验二 利用栈实现表达式求解
1整体设计思路
基本的思路是,程序根据输入的字符,来分析求解步骤,然后根绝步骤以此计算求解。我用符号来表示运算符和运算符的优先级,通过运算符的优先级来决定是进行运算还是入栈。
比如输入一个字符串:12+56/7*65=??? 遇到数字就继续向后读取,直到遇到运算符,将这前面的数字入栈,然后在+号这里,程序判断+号和运算符栈顶的运算符优先级,因为运算符栈初始化是有一个最低级运算符=,所以+号优先级大于=号,这里就将+号也入运算符栈。然后继续读取数字,将独到的的数字56后入运算数栈,这里/号运算符优先级大于刚入栈的+号。所以/号也继续入预算符栈。数字7入运算数栈,后面的*号和运算数栈顶的/号同优先级,所以这里程序先不把*号入栈,进行出栈计算函数操作。由于运算数栈栈顶和栈顶下一个数据,就是/号运算符的2个运算数,所以将运算数栈出栈2次,运算符栈出栈一次,得到56/7,进行计算,将得到的结果8进行运算数入栈操作,然后在执行*号和运算符栈顶进行比较,*号优先级大于+号,入运算符栈,并且读取
您可能关注的文档
最近下载
- 【申论真题】2021年甘肃公务员考试《申论》试题及答案解析(乡镇卷).docx VIP
- 梁祝-钢琴谱(高清晰).pdf VIP
- 《雪地里的小画家》教案.docx VIP
- 幼儿园《幼儿园保育教育质量评估指南》测试题(带答案).docx VIP
- 幼儿园《幼儿园保育教育质量评估指南》测试题(附答案).docx VIP
- 人工智能基础与应用—(AIGC实战):AIGC文本生成与辅助写作PPT教学课件.pptx VIP
- 幼儿园《幼儿园保育教育质量评估指南》测试题(含答案).docx VIP
- 幼儿园《幼儿园保育教育质量评估指南》测试题(附答案).docx VIP
- 脑血管意外急救护理常规.pptx
- 生物化学基础.ppt VIP
文档评论(0)