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

  1. 1、本文档共50页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
算 法 设 计 与 分 析 实 验 指 导 书 信息科学技术学院 目 录 实验一 单链表的建立插入及删除 3 实验二 多项式加法 5 实验三 集合的表示与操作算法设计 7 实验四 ?迷宫问题求解 8 实验五 树的建立及遍历 11 实验六 图的遍历的演示 12 实验七 哈希表的设计 15 实验八 Kruskal算法的设计 17 实验九 归并排序的分治策略设计 19 实验十 哈夫曼编码的贪心算法设计 21 实验十一 递归与迭代程序设计 22 实验十二 多段图问题的动态规划算法设计 24 实验十三 作业调度问题 26 实验十四 回溯算法设计 28 实验十五 搜索顺序的选择 29 实验十六 蛇和梯子 31 实验十七 游戏中寻址算法的设计 34 实验十八 旅行商问题 36 实验十九 骑士游历算法设计 38 实验二十 输油管道问题的设计与实现 40 实验二十一 邮局选址问题的设计与实现 42 实验二十二 会场安排问题的设计与实现 44 实验二十三 目录树打印程序的设计 46 实验二十四 最少演员问题 48 附:实验(设计)报告参考格式 50 实验一 常见简单算法的设计、实现与分析 ?[实验目的] 1.掌握单链表的建立插入及删除的算法; 2.进一步熟悉指针的用法; [预习要求] 1.认真阅读教材或参考书, 掌握线性表算法的基本思想; 2.写出求解本实验的程序; 3.设计好相应的测试用例。 ?[类型定义] typedef struct Lnode {int data; struct Lnode *next; }Lnode,*linklist; [实验提示] void create(link *h,int n) {//创建单链表 link p,q; int i; p=(link)malloc(sizeof(node)); p-next=null; *h=p;q=p; for(i=1;i=n;++i) {p=(link)malloc(sizeof(node)); scanf(%d,p-data); p-next=null;q-next=p;q=p; } } void print(link h) {//输出单链表 link p; p=h-next; while(p) {printf(%d ,p-data); p=p-next; } } void insertlist(linklist *L,int i,int e) {//在单链表的第i个元素之前插入元素值为e的结点} void dellist(linklist *L,int i,int *e) {//删除单链表的第i个结点,被删结点通过 e返回} ?[实验步骤] 先用插表头或插表尾的方法建立单链表并输出,并测试你的程序,直至正确为止; 再进行插入和删除程序的设计; 将你的程序和实录的界面存盘备用。 [实验报告要求] 阐述实验目的和实验内容; 提交模块化的实验程序源代码; 简述程序的测试过程,提交实录的输入、输出文件; 提交思考与练习题的代码和测试结果。 [思考与练习] 怎样用链表实现循环队列。 实验二 多项式加法 ?[实验目的] 1.熟练掌握在单链表中进行结点的插入和删除操作; 2.进一步熟悉指针的用法; [预习要求] 1.认真阅读教材或参考书, 掌握线性表算法的基本思想; 2.写出求解本实验的程序; 3.设计好相应的测试用例。 ?[类型定义] typedef struct Lnode {int coef,exp; struct Lnode *next; }Lnode,*linklist; [实验提示] void create(link *h,int n) {//创建一元多项式 link p,q; int i; p=(link)malloc(sizeof(node)); p-next=null; *h=p;q=p; for(i=1;i=n;++i) {p=(link)malloc(sizeof(node)); scanf(%d%d,p-coef,p-exp); p-next=null;q-next=p;q=p; } } void print(link h) {//输出单链表 link p; p=h-next; while(p) {printf(%d,%d ,p-coef,p-exp); p=p-next; } } void addlist(linklist *A, linklist B) {//将A和B相加并通过A返回} ?[实验步骤] 先用插表尾的方法建立一元多项式,并将一元多项式输出,并测试你的程序,直至正确为止; 进行一元多项

文档评论(0)

fpiaovxingl + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档