ImageVerifierCode 换一换
格式:DOCX , 页数:39 ,大小:112.20KB ,
资源ID:4738568      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-4738568.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(查找算法的设计与实现.docx)为本站会员(b****3)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

查找算法的设计与实现.docx

1、查找算法的设计与实现 (本实验项目方案受“教育部人才培养模式创新实验区(X3108005)”项目资助) 实验难度: A B C 序号学号姓名成绩指导教师 (签名)学期:2014 秋季学期 任课教师: 张德海 王常吉 实验题目: 查找算法的设计与实现 小 组 长: 联系电话: 电子邮件: 完成提交时间:2014年 12月 31日云南大学软件学院2014学年 秋季 学期数据结构实验成绩考核表学号:20131120267 姓名:蔡智霖 本人承担角色:代码设计,算法分析,运行监测,填写报告评分项目评分指标分值得分实验构思(10%)1. 实验目的明确52. 实验内容理解透彻、对实验所涉及到的知识点分析到

2、位5实验设计(15%)1. 有对基本数据结构的抽象数据类型定义52. 实验方案设计完整,数据结构、算法选择合理 53.算法结构和程序功能模块之间逻辑清晰、有相应的流程图5实验实现(25%)1. 代码编写规范、风格统一、注释清楚易读 52. 程序运行正常,测试结果正确153. 界面友好、易于操作、有较强的容错性5实验报告撰写(10%)1. 内容详实无缺漏,文字流畅、图表清楚52. 实验结果分析客观、详细,实验体会真实可信,对原实验方案的改进和对实验内容的发散性思考5个人工作量(30%)1. 个人完成工作量152. 个人技术水平103. 团队合作精神5实验运作(10%)1. 有一定用户群52. 应

3、用前景分析5综合得分: (满分100分)指导教师: 年 月 日云南大学软件学院2010学年 秋季 学期数据结构实验成绩考核表学号:20131120272 姓名:邓飞武 本人承担角色:结果检验评分项目评分指标分值得分实验构思(10%)1. 实验目的明确52. 实验内容理解透彻、对实验所涉及到的知识点分析到位5实验设计(15%)1. 有对基本数据结构的抽象数据类型定义52. 实验方案设计完整,数据结构、算法选择合理 53.算法结构和程序功能模块之间逻辑清晰、有相应的流程图5实验实现(25%)1. 代码编写规范、风格统一、注释清楚易读 52. 程序运行正常,测试结果正确153. 界面友好、易于操作、

4、有较强的容错性5实验报告撰写(10%)1. 内容详实无缺漏,文字流畅、图表清楚52. 实验结果分析客观、详细,实验体会真实可信,对原实验方案的改进和对实验内容的发散性思考5个人工作量(30%)1. 个人完成工作量152. 个人技术水平103. 团队合作精神5实验运作(10%)1. 有一定用户群52. 应用前景分析5综合得分: (满分100分)指导教师: 年 月 日云南大学软件学院2010学年 秋季 学期数据结构实验成绩考核表学号:20131120247 姓名:温岩松 本人承担角色:错误总结评分项目评分指标分值得分实验构思(10%)1. 实验目的明确52. 实验内容理解透彻、对实验所涉及到的知识

5、点分析到位5实验设计(15%)1. 有对基本数据结构的抽象数据类型定义52. 实验方案设计完整,数据结构、算法选择合理 53.算法结构和程序功能模块之间逻辑清晰、有相应的流程图5实验实现(25%)1. 代码编写规范、风格统一、注释清楚易读 52. 程序运行正常,测试结果正确153. 界面友好、易于操作、有较强的容错性5实验报告撰写(10%)1. 内容详实无缺漏,文字流畅、图表清楚52. 实验结果分析客观、详细,实验体会真实可信,对原实验方案的改进和对实验内容的发散性思考5个人工作量(30%)1. 个人完成工作量152. 个人技术水平103. 团队合作精神5实验运作(10%)1. 有一定用户群5

6、2. 应用前景分析5综合得分: (满分100分)指导教师: 年 月 日云南大学软件学院2010学年 秋季 学期数据结构实验成绩考核表学号:20131120258 姓名:程哲 本人承担角色:实验分析评分项目评分指标分值得分实验构思(10%)1. 实验目的明确52. 实验内容理解透彻、对实验所涉及到的知识点分析到位5实验设计(15%)1. 有对基本数据结构的抽象数据类型定义52. 实验方案设计完整,数据结构、算法选择合理 53.算法结构和程序功能模块之间逻辑清晰、有相应的流程图5实验实现(25%)1. 代码编写规范、风格统一、注释清楚易读 52. 程序运行正常,测试结果正确153. 界面友好、易于

7、操作、有较强的容错性5实验报告撰写(10%)1. 内容详实无缺漏,文字流畅、图表清楚52. 实验结果分析客观、详细,实验体会真实可信,对原实验方案的改进和对实验内容的发散性思考5个人工作量(30%)1. 个人完成工作量152. 个人技术水平103. 团队合作精神5实验运作(10%)1. 有一定用户群52. 应用前景分析5综合得分: (满分100分)指导教师: 年 月 日(下面的内容由学生填写,格式统一为,字体: 楷体, 行距: 固定行距18,字号: 小四,个人报告按下面每一项的百分比打分。难度A满分70分,难度B满分90分)一、【实验构思(Conceive)】(10%)(本部分应包括:描述实验

8、实现的基本思路,包括所用到的离散数学、工程数学、程序设计、算法等相关知识)数据结构算法的知识: 表的定义;表项的表示;表的存储结构;哈希表的定义;哈希函数的构造方法;哈希表查找处理冲突的办法二、【实验设计(Design)】(20%)(本部分应包括:抽象数据类型的功能规格说明、主程序模块、各子程序模块的伪码说明,主程序模块与各子程序模块间的调用关系)抽象数据类型的功能规格说明:定义学生结点:typedef struct student /学生结点 char name16; char number11; struct student *next; student;哈希函数 int Hash(cha

9、r *str)按姓名进行查找 student *search1(char *name)按学号进行查找 student *search2(char *number)插入某指针指向的结点 void ins(student *q)删除p指针所指的结点 void del(student *p)插入 void Insert()输出哈希表全部的内容 void print()修改内容 void change()两种方式查找 void search()三、【实现描述(Implement)】(30%)(本部分应包括:抽象数据类型具体实现的函数原型说明、 关键操作实现的伪码算法、 函数设计、函数间的调用关系,关键

10、的程序流程图等,给出关键算法的时间复杂度分析。)抽象数据类型具体实现的函数原型说明:1.节点类型typedef struct student /学生结点 char name16; char number11; struct student *next; student;2.哈希函数int Hash(char *str) /哈希函数 int i; i = strlen(str); return i; 3.main函数int main() char menu220 = 请选择你要的操作的序号:n 1.插入元素n 2.删除元素n 3.查看哈希表n 4.查找元素n 5.更改信息n 6.退出n ; ch

11、ar c; int i; printf(nn); printf(*n); printf(* 程序说明:本程序利用哈希表,按照学生姓名(汉语拼音)长度分 *n); printf(* 配其所在地址,学生信息包括姓名,学号,可以对该表进行插入, *n); printf(* 删除,查找,查看,更改信息等操作,是一个管理学生的小系统 *n); printf(*nnn); for(i = 0 ; i name,name) /p指针不空并且p-name不是要找的那个name则循环进行 p = p-next; if (!p) return NULL; /返回空指针 else return p; /返回指针p

12、/*按学号查找*/ student *search2(char *number) int i; student *p,*q; for(i = 0 ; i next = NULL) /该地址上只有1个元素的情况 if (strcmp(p-number,number) continue; else return p; else /该地址上多于1个元素的情况 q = HashTablei; /此时p和q都是HashTablei while (p & strcmp(p-number,number) /p指针不空并且p-name不是要找的那个name则循环进行 q = p; /保持q在p的前面 p =

13、p-next; if (!p) continue; else /p指针所指的结点 p-name就是要查找的name return p; return NULL; /如果直到i=16时才结束,正常结束,则没有找到该学号的学生 /*插入某指针指向的结点*/ void ins(student *q) location = strlen(q-name); if (HashTablelocation = NULL) /此位置上还没有插入一个元素 HashTablelocation = q; / HashTablelocation指向node q-next = NULL; else /向前插 q-next

14、 = HashTablelocation; /HashTablelocation 是指针! HashTablelocation = q; /*删除p指针所指的结点*/ void del(student *p) /删除p指针所指向的结点 student *q; int location = Hash(p-name); /找到地址 if (p-next = NULL) /要删除的元素所在地址上只有1个元素的情况 HashTablelocation = NULL; free(p); else /要删除的元素所在地址上多于1个元素的情况 p = HashTablelocation; q = HashT

15、ablelocation; while (p & strcmp(p-name,name) /p指针不空并且p-name不是要找的那个name则循环进行 q = p; /保持q在p的前面 p = p-next; /循环结束时已经找到要删的结点了 q-next = p-next; free(p); /删除p结点 /*插入*/ void Insert() /插入完成 student *node; printf(请输入要插入的同学的姓名(汉语拼音,字符不多于15个):n); gets(name); printf(请输入要插入的同学的学号(不多于10位):n); gets(number); node =

16、 (student *)malloc(sizeof(struct student); node-next = NULL; strcpy(node-name,name); /复制字符串 strcpy(node-number,number); location = Hash(node-name); /找到应该插入的位置 if (HashTablelocation = NULL) /此位置上还没有插入一个元素 HashTablelocation = node; / HashTablelocation指向node printf( 插入完成!nn); else /向前插 node-next = Hash

17、Tablelocation; /HashTablelocation 是指针! HashTablelocation = node; printf( 插入完成!nn); void Delete() /按姓名删除 student *p; char info16; printf(请输入要删除的同学的姓名或学号:n); gets(info); if (info0 = 0 & info0 = 9) /知道输入的是学号 p = search2(info); if(!p) printf(没有此学号的学生,无法修改信息!nn); return; else del(p); printf(删除成功!nn); return; else p = search1(info); if (!p) printf(没有此学号的学生,无法修改信息!nn); return; else del(p); printf(删除成功!nn); return; /*输出哈希表全部的内容*/ void print() int i ; student *p ; printf(哈希表的所有元素及所在地址如下:n); for (i = 0 ; i 16 ; i+) printf(%-2d :,i); if (!HashTablei) print

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2