- 1、本文档共17页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
哈希查找的实现与分析报告(顺序).docx
目 录1 课程设计内容11.1 课程设计目的11.2 课程设计要求11.3 课程设计背景12 概要设计22.1 程序模块结构图22.2 主界面模块说明22.3读取学生信息模块说明23 详细设计33.1 建立哈希表33.2计算哈希值33.3读取文件43.4显示所有学生信息63.5查找学生信息73.6界面显示93.7主函数104 问题与解决12小 结13参考文献131 课程设计内容1.1 课程设计目的课程设计题目:哈希查找的实现与分析(1)掌握哈希函数的构造原则及哈希表的生成方法,并能在解决实际问题时灵活应用。(2)掌握哈希查找的基本过程及其适用场合。(3)巩固在散列查找时解决冲突的方法,并比较各种方法的特点。(4)掌握平均查找长度ASL的计算方法。1.2 课程设计要求程序要求实现的功能有:(1)所有数据从文本文件Hash.txt中读取。(2)根据实际问题自行构造合理的哈希函数,要求采用开放定址法或拉链法,解决Hash表的冲突。(3)严格按照哈希表构造的一般原则进行编程(不能简单地将文件中的数据读到一个数组里,再从数组里完成相应的查找功能)。(4)计算该哈希表查找成功时的ASL,并在课设报告中给出具体分析过程。(5)如果一个班级中有两个同学抽中此题,则要求学号在前面的同学用拉链法,学号在后面的同学用开放定址法来解决冲突。1.3 课程设计背景哈希查找的产生有这样一种背景——有些数据本身是无法排序的(如图像),有些数据是很难比较的(如图像)。如果数据本身是无法排序的,就不能对它们进行比较查找。如果数据是很难比较的,即使采用折半查找,要比较的次数也是非常多的。因此,哈希查找并不查找数据本身,而是先将数据映射为一个整数(它的哈希值),并将哈希值相同的数据存放在同一个位置一即以哈希值为索引构造一个数组。在哈希查找的过程中,只需先将要查找的数据映射为它的哈希值,然后查找具有这个哈希值的数据,这就大大减少了查找次数。如果构造哈希函数的参数经过精心设计,内存空间也足以存放哈希表,查找一个数据元素所需的比较次数基本上就接近于一次。2 概要设计2.1 程序模块结构图哈希查找程序 界面显示查找学生信息 显示学生信息 读取文件主函数程序结构模块图2.2 主界面模块说明主界面提供程序运行时出现的界面,此界面必须要有我想要实现功能的组件。具体而言,它需要有菜单,读取文件的菜单选项,关闭程序的菜单选项,还需要考虑好什么样的布局方式和界面美观性。2.3读取学生信息模块说明选项1读取文件显示在主界面上,使得看起来简洁清楚。3 详细设计3.1 建立哈希表#includestdio.h#includestdlib.h#includeconio.h#includestring.h#define MAX 50typedef struct _student{int key;int tag;char number[9];char name[10];char Major[31];char score[5];} *student,ST;typedef struct _Hash{student data[MAX];} *Hash,Hs;3.2计算哈希值我通过以学号的ASCII值之和作为关键字来计算key void Save(student S,Hash H){int key=0;int i;for(i=0;i9;i++)key=key+S-number[i];//学号的ASCII值之和作为关键字S-key=key%MAX;while(1){if(H-data[S-key]-tag!=0){H-data[S-key]=S;H-data[S-key]-tag=0;break;}elseS-key=(S-key+1)%50;}}3.3读取文件在程序的同一目录下,系统可以取读文件。void ReadFile(Hash H){char data[57];int i,j,k,m,n;student S;FILE *fp;if((fp=fopen(Hash.txt,r))==NULL){printf(文件未能正常打开\n);exit(0);}上面的代码是读取文件失败。下面是成功读取文件Hash.txt的代码。 H=(Hash)malloc(sizeof(Hs));for(i=0;i50;i++)H-data[i]=(student)malloc(sizeof(ST));while(1){S=(student)malloc(sizeof(ST));fgets(data,sizeof(data),fp);if(feof(fp)!=0)//若文件读到末尾,则返回return;j=0;k=0;m=0;for(i=0;i56;i++){if(i9)S-number[i]=data[i];if(i9i1
您可能关注的文档
- 数据结构(B)上机实验五__查找和排序.doc
- 南开大学公共绿地调研.doc
- 实验五 查找运算实现.doc
- 数据结构期末样卷参考答案.doc
- 查找、排序的应用 实验报告.doc
- 查找和排序的实现.doc
- 查找排序应用问题实现.doc
- 高分子复合.doc
- 2024江西江铃专用车辆厂有限公司招聘60人笔试参考题库附带答案详解 .docx
- 2024河南安建建设工程管理有限责任公司招聘笔试参考题库附带答案详解 .docx
- 2024年陕西咸阳亨通电力(集团)有限公司供电服务业务部直聘用工招聘145人笔试参考题库附带答案详解 .docx
- 2024年中建四局土木工程有限公司校园招聘笔试参考题库附带答案详解 .docx
- 2024年四川雅茶贸易有限公司公开招聘和考察聘用人员3人笔试参考题库附带答案详解 .docx
- 2024年中国烟草总公司辽宁省公司公开招聘拟录用人员(166人)笔试参考题库附带答案详解 .docx
- 2024江苏连云港中诚物业管理有限公司招聘工作人员1人笔试参考题库附带答案详解 .docx
- [毕节]2025年贵州毕节市引进人才649人笔试历年参考题库附带答案详解.docx
- 2024年度中国东航技术应用研发中心有限公司校园招聘笔试参考题库附带答案详解 .docx
- 2024年福建省厦门盐业有限责任公司春季人才招聘1人笔试参考题库附带答案详解 .docx
- 2024年山东省环保发展集团绿能有限公司职业经理人招聘2人笔试参考题库附带答案详解 .docx
- 2024年安徽滁州郊源阳光电力维修工程有限责任公司招聘41人(第一批次)笔试参考题库附带答案详解 .docx
最近下载
- 2024年青岛职业技术学院高职单招语文历年参考题库含答案解析.docx
- 《多波段天气雷达协同观测规范》.docx VIP
- 2025年烟台汽车工程职业学院单招综合素质考试题库及答案解析.docx
- 主题3 人与自我—自我认识与提升课件+2025年中考英语人教版一轮专题复习.pptx VIP
- 学校种植园方案设计.ppt
- 拉完整版本.封丹寓言.pptx VIP
- 第三单元名著导读《经典常谈》课件++2023-2024学年统编版语文八年级下册.pptx VIP
- 人工智能与智能医学影像分析.pptx VIP
- 全过程造价咨询服务实施方案设计.docx
- 宁夏医科大学2023-2024学年第2学期《生物化学》期末考试试卷(A卷)附参考答案.docx
文档评论(0)