- 1、本文档共26页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
课程设计报告
课程名称: 数据结构课程设计 课程设计题目: 中缀表达式算法、最小生成树 姓 名: 系: 专 业: 年 级: 学 号: 指导教师: 职 称:
年 月 日
课程设计报告结果评定
评语:
评分项目
分值
得分
课程设计报告符合规范
10分
类图、用例图、系统框图合理
30分
主要技术线路正确
30分
设计报告条理清晰、重点突出
20分
有一定创新性、难易程度
10分
成绩: 指导教师签字: 任务下达日期: 评定日期:
目 录
1.设计目的 4
2.主要仪器设备 4
3.设计要求 4
4.设计方案 5
4.1设计一流程图 5
4.2设计二——prim算法流程图 6
4.3设计二——kruskal算法流程图 7
5.设计内容 8
5.1 设计主要算法思想 8
5.2程序主要算法函数说明 8
5.2.1 设计一 8
5.2.2 设计二 10
5.3程序运行结果 15
5.3.1 设计一 15
5.3.2 设计二 18
6.总结 23
参考文献 23
附录:程序源代码 24
设计目的
通过这次课程设计,加深对这一学期所学的算法与数据结构的掌握,使自己所学的知识得到运用。
设计一:
1、理解堆栈的特点和堆栈的存储结构;
2、掌握堆栈的基本操作的实现方法;
3、掌握后缀表达式在计算机中的应用;
4、掌握后缀表达式的生成算法和计算过程;
5、掌握用堆栈实现后缀表达式的生成算法;
设计二:
掌握网络的邻接表存贮结构。
掌握优先队列的基本运算实现。
掌握网络的邻接表的算法实现。
掌握网络的最小生成树Prim或Kruskal算法。
学习并掌握上述的算法的实现及运算过程。
2.主要仪器设备
硬件环境:PC机
软件环境:Visual C++ 6.0
3.设计要求
设计一:设计内容和要求 设计并实现堆栈,利用堆栈实现对后缀表达式的求值
设计二:对任意给定的网络(顶点数和边数自定),建立它的邻接矩阵并输出,然后利用Prim算法或Kruskal算法生成它的最小生成树,并输出结果。
4.设计方案
3.2算法的设计:
后缀表达式运算的思想为依次读入表达式中的每一个字符,若当前字符是运算对象,入对象栈,是运算符时,若这个运算符比栈顶运算符高则入栈,继续向后处理,若这个运算符比栈顶运算符低则从对象栈出栈两个运算量,从算符栈出栈一个运算符进行,并将运算结果入对象栈,继续处理当前字符,直到遇到结束符。
根据运算规则,每个运算符栈内、栈外的级别如下:
算符 栈内级别 栈外级别 ^ 3 4 *、/、% 2 2 +、- 1 1 ( 0 4 ) -1 -1
后缀表达式的结果计算主要涉及的数据结构为栈结构,包括下面一些操作,如进栈、出栈、判断栈是否为空 、及栈是否为满、读栈顶元素等操作
4.2设计二——prim算法
、
是
是
否
4.3设计二——kruskal算法流程图
5.1 设计主要算法思想
设计一:
中缀表达式是最普通的一种书写表达式的方式,而后缀表达式不需要用括号来表示,计算机可简化对后缀表达式的计算过程,而该过程又是栈的一个典型应用。应用栈的知识,求出输入后缀表达式的值
设计二:
设计二:首先考虑网的邻接矩阵的建立,以及邻接表的建立。然后设计一个函数,将网的所有边的权值,以及边的结点信息,按照权值大小,使用插入排序将数据都放入队列中。最后,使用prim算法,和kruskal算法,分别用来生成最小生成树。
Prim算法的方法:
从网中任一顶点开始,先把该顶点包含在生成树中,此时生成树中只有一个顶点。
找出一个端点在生成树中另一端点在生成树外的所有边,并把权值最小的边连同它所关联的另一顶点添加到生成树中;当有两条及以上具有相同最小权值的边可供选择时,选择其中任意一条都可以。
反复执行②,直到所有定点都包含在生成树中时止。
Kruskal算法:
算法按权的大小顺序考察各边。算法每一步所考察到的边,初始化集合A为空集并建立|V|棵树,每棵树包含图的一个结点。根据其权值非递减次序对E的边进行排序。在for循环中首先检查对每条边(u,v)其端点u和v是否属于同一棵树。如果是,则把(u,v)加入森林就会形成回路,所以这时放弃边(u,v)。如果不是,则两结点分属不同的树,把边加入集合A中,同时对两棵树中的结点进行归并。
5.2程序主要算法函数说明
A)结构体
{
struct Stack {
int *stack;
int top
您可能关注的文档
- “潮人会”餐饮创业计划书程序.ppt
- “打飞的”商业计划书程序.ppt
- “大玩家”王世襄明式家具十六品程序.ppt
- “低成本高效率”培训体系建设与实施技术程序.ppt
- “地热能淡化海水方法”程序.ppt
- “雕刻时光”甜品店程序.ppt
- “东方明珠”——香港和澳门.修改好2014程序.ppt
- “东方之珠”_第一课时程序.ppt
- “防癌神器”爱无忧程序.ppt
- “赴美移民时间战打响”程序.ppt
- 九年级化学下册第7章应用广泛的酸碱盐第2节常见的酸和碱第3课时中和反应课件沪教版.pdf
- 九年级化学下册第7章应用广泛的酸碱盐第3节几种重要的盐第1课时盐及盐的化学性质课件沪教版.pdf
- 人教版(2019)选择性必修第四册SciencefictionUsingLanguageListening课件(共24张PPT).pdf
- 九年级化学下册专题三第1讲溶液的配制习题课件沪教版.pdf
- 九年级化学下册专题四第2讲化学与能源习题课件沪教版.pdf
- 人教版(2019)必修第二册HistoryandTraditionsReadingforWriting课件(共25张PPT,内嵌视频).pdf
- 九年级化学下册第7章应用广泛的酸碱盐第3节几种重要的盐第1课时盐的化学性质及复分解反应发生的条件习题课件沪教版.pdf
- 九年级化学下册第十单元酸和碱实验活动7溶液酸碱性的检验授课课件新版新人教版.pdf
- 人教版(2019)必修第三册FestivalsandCelebrationsReadingforWriting课件(共26张PPT).pdf
- 人教版(2019)选择性必修第四册ScienceFictionReadingandThinking课件(共32张PPT).pdf
文档评论(0)