2015算法分析与设计实验指导书.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
2015算法分析与设计实验指导书

《计算机算法设计与分析》 实验指导书(第一版) 前言 计算机算法分析与设计是面向设计的,它是计算机科学的核心。无论是计算机系统、系统软件和解决计算机的各种应用问题都可归结为算法的设计。通过本课程的学习,使学生掌握计算机领域中许多常用的非数值的算法描述:分治法、贪心法、动态规划、回溯法、分枝限界等算法,并掌握算法分析的方法,从而把学生的分析问题和解决问题能力提高到理论的高度。 前期课程为程序设计语言、数据结构、高等数学,即学生应该具备一门高级语言程序设计编程基础,学习基本的数据结构知识,还要求学生掌握较好的数学基础。 开发环境不限,本书采用C/C++语言的集成开发环境等。 实验完成后书写实验报告,包含实验问题、基本思想、关键算法流程图、测试数据及运行结果(截图)、调试心得和源程序。 总实验学时为16学时。 目录 预备实验 验证算法的方法 4 实验目的: 4 实验课时: 4 实验原理: 4 实验题目: 6 基本题: 6 提高题: 6 实验一 递归与分治 7 实验目的: 7 实验课时: 7 实验原理: 7 实验题目: 7 基本题: 7 提高题: 8 思考问题: 8 实验二 动态规划算法 9 实验目的: 9 实验课时: 9 实验原理: 9 实验题目: 9 基本题: 9 提高题: 10 思考问题: 10 实验三 贪心选择算法 11 实验目的: 11 实验课时: 11 实验原理: 11 实验题目: 11 基本题: 11 提高题: 12 思考问题: 12 实验四 回溯算法 13 实验目的: 13 实验课时: 13 实验原理: 13 实验题目: 14 基本题: 14 提高题: 14 思考问题: 14 预备实验 验证算法的方法 实验目的: 熟悉开发环境中文件、函数和头文件等的使用方法。 实验课时: 2学时 实验原理: 算法以自定义函数形式给出的,要验证算法,需编写一个完整的源程序,调用函数实现算法的功能.一般源程序的结构如下: 文件包含预处理 符号常量的定义 类型定义 //确定数据结构 返回类型 自定义函数名(形式参数表) //自定义函数的定义,即算法 { … } void main() { 变量定义;//定义处理对象 建立对象;//根据存储类型,给变量赋值,以确定具体的处理对象 调用自定义函数;//引用函数对处理对象进行操作,实现算法的功能 打印输出;//给出结果 } linklist.h文件为: typedef int elemtype;/*定义元素类型*/ typedef struct linknode { elemtype data; struct linknode *next; }nodetype;/*定义结点类型,确定线性表的链式存储结构*/ nodetype *create(); /*通过读数据文件input.txt中的数据建立一个不带头结点的单链表,通过函数的值返回头指针*/ void disp(nodetype *h); /*遍历显示以h为头指针的单链表*/ void invert(nodetype *h);/*逆序打印单链表*/ 所有函数(算法)实现放在test.cpp源文件中,如: #include stdio.h #include malloc.h #include linklist.h nodetype *create() {。。。。。。。。} void disp(nodetype *h) {。。。。。。。。} void invert(nodetype *h) {。。。。。。。。} 最后由一个主源文件main.cpp完成调用,如: #include stdio.h #include malloc.h #include linklist.h void main() { nodetype *head;/*定义变量head,以表示处理的单链表头指针*/ elemtype x; head=create();/*建立单链表head*/ disp(head);/*显示逆置前的单链表*/ invert(head);/*逆序打印单链表*/ } 实验题目: 基本题: 用函数create()、disp(nodetype *h)、invert(nodetype *h) 实现不带表头和带表头单链表的逆置问题,即输入文件input.txt为 1 2 3 4 输出为4 3 2 1 (可以用文件存放) 提高题: 用DFS 判断图是否连通,图中是否有环, readGraph( )从文件中读入图的信息; printGraph ( )以邻接表的形式显示图的信息; Connectivity_DFS(MGraph m)判断图是否连通; Cycle

文档评论(0)

jiaotang2079 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档