《数据结构》大报告书.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文档。上传文档
查看更多
《数据结构》大报告书

《数据结构》大作业报告书 题 目:基于哈希表链地址法实现的C语言关键字快速查找 完成时间:2014年6月 学 号: 2013013157 姓名: 高淑颖 专业班级:电商131 实习任务与目的 (1)学会通过对问题的分析,设计一种合理的数据结构,并进行定义及操作的实现。 (2) 能够按照要求理清整个程序的运行过程并绘画出大致的流程图。 (3)掌握利用哈希表链地址法来实现具体的关键字查找,?学习使用C++程序来了解哈希查找的原理。 (4)掌握C++和数据结构,在完成课程设计和变成过程中,要深化对数据结构与算法课 程中的基本概念、理论和方法的理解,训练综合运用所学知识处理实际问题的能力,强化面向对象的程序设计理念,在老师的指导下完成最少换车次数问题,把自己所学的理论用具体的问题来解决,更加直接,易懂。提高程序设计与调试水平。 (5)根据老师给的源代码学习用文档书写程序说明。要掌握数据结构的各个算法,运用学过的算法去解决实际中的问题,将数据结构用用武之地,也能提高运用能力和编写程序的能力,对技能也有进一步的提高, 实习内容及过程 深入了解哈希函数 线性表和树等线性结构中,记录在结构中的相对位置是随机的,和记录的关键字之间不存在确定的关系,因此,在结构中查找记录时需要进行一系列和关键字的比较。理想的情况是希望不经过任何比较,一次存取便能够取到所查找的记录,那就必须在记录的存储位置和它的关键字之间建立一个确定的对应关系f,使得每个关键字和结构中一个唯一的存储位置相对应。因而在查找时,只要根据这个对应关系f找到给定值K的像f(K)。若结构中存在关键字和K相等的记录,则必定在f(K)的存储位置上,因此,不需要进行比较便可以直接取得所查记录。在此,我们称这个对应关系f为哈希函数,按照这个思想建立的表为哈希表。即对Hash表中每个Hash值建立一个冲突表,即将冲突的几个记录以表的形式存储在其中用链地址法处理冲突的方法是:把具有同哈希地址的关键字放一个链表中,称为同义词链表。通常把具有相同哈希地址的关键字都放在同一个链表中(该链表有时也称为桶),有m个哈希地址就有m个链表同时,用数组A[0m-1存放各个链表的头指针,凡是哈希地址为i的记录都以节点方式插入到以A[i]为头节点的链表中。链地址法处理哈希冲突时的哈希表如图所示。 (二)哈希表实现中需要注意的问题通常用于处理冲突的方法有:开放定址法、再哈希法、链地址法、建立一个公共溢出区等。在哈希表上进行查找的过程和哈希造表的过程基本一致。给定K值,根据造表时设定的哈希函数求得哈希地址,若表中此位置没有记录,则查找不成功;否则比较关键字,若何给定值相等,则查找成功;否则根据处理冲突的方法寻找“下一地址”,知道哈希表中某个位置为空或者表中所填记录的关键字等于给定值时为止。问题描述 编写Hash表程序 (2)关键字为整数,冲突解决用单向链表 (3)Hash表建立函数 关键字搜素函数哈希函数则其查找过程如下获得一个数据元素的键顺序比较桶的内部元 操作过程: (1)因为文本串非空且以文件形式存放, 统计匹配的词集非空,所以文件名和词集均由用户从键盘输入。 (2)把“单词”定义:由字母构成的字符序列,而且中间不含空格符且区分大小写。 (3)设定待统计的“单词’在文本串中不跨行出现,它或者从行首开始,或者前置以一个空格符。 (4)在计算及终端输出的结果是:单词、出现的次数、出现位置所在行的行号,同一行出现两次的只输出一个行号。 (5)测试数据为老师提供的文本文件C关键字。程序运行过程中对于给出的txt文件(filename.txt,target.txt,要搜索的文件)只许读,不允许写和更改,如果试图写入或更改这些txt文件,程序会崩掉。#include stdio.h #include stdlib.h #includeiostream #includefstream #define N 708 #define HASH_MAX 201 using namespace std; ifstream fin; ofstream fout; typedef pairstring,int PAIR; typedef struct Node { int Key; struct Node *next; } Node, *PtrNode; int HashMod(int key) { return key % HASH_MAX; } void CreateHash(Node *HashTab, int key[], int n) { PtrNode p, q, l; int index; int flag; for(int i=0; in; i++)

文档评论(0)

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

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

1亿VIP精品文档

相关文档