数据结构与算法课程设计报告-利用哈希技术统计C源程序关键字出现频度.docx
《数据结构与算法课程设计报告-利用哈希技术统计C源程序关键字出现频度.docx》由会员分享,可在线阅读,更多相关《数据结构与算法课程设计报告-利用哈希技术统计C源程序关键字出现频度.docx(12页珍藏版)》请在第壹文秘上搜索。
1、国弟孝理N文孽数据结构与算法课程设计报告题目:利用哈希技术统计C源程序关键字出现频度学生姓名:学号:.一班级:指导教师:2012年6月18日利用哈希技术统计c源程序关键字出现频度(D题目内容:利用Hash技术统计某个C源程序中的关键字出现的频度(2)根本要求:扫描一个C源程序,用HaSh表存储该程序中出现的关键字,并统计该程序中的关键字出现的频度。用线性探测法解决HaSh冲突。设HaSh函数为:HaSh(key)(key的第一个字母序号)*100+(key的最后一个字母序号)MOD41一、对题目的分析哈希表是为了便于快速搜索而组织的值组合的集合。HaShTable是一种数组,可以用任意简单变量
2、值来访问其元素,这种数组叫做关联数组,也叫哈希表。值对的集合。理想的情况下是希望不经过任何比拟,一次存储就能得到所查到的记录,那就必须在记录的存储位置和它的关键字之间建立一个确定的对应关系f,使每个关键字和结构中一个唯一的存储位置相对应。根本要求:使用一个下标范围比拟大的数组来存储元素。可以设计一个函数(哈希函数,也叫做散列函数),使得每个元素的关键字都与一个函数值即数组下标,hash值)存在一一对应的关系,于是用这个数组单元来存储这个元素。使用hash表存储关键字时难免会有不同的关键字对应同一关键码的情况,因此必须有个处理冲突的方法。Hash函数:HaSh(key)(key的第一个字母序号)
3、*100+(key的最后一个字母序号)MOD41二、处理冲突的方法处理冲突的方法一线性探测法用线性探法解决冲突时,把有冲突的关键字往后推移直到有空位置的关键码时再插入到hash表中。Q语言关键字.3语言关键字是C语言的保存的一些单词,这些单词都有了固定的意义和用途,不可以作为变量或者自定义类型或类名来使用。其特点是都有小写字母构成。C语言关键字有哪些:doubleintstructbreakelselongswitchcaseenumregistercharexternreturnunionconstfloatshortunsignedcontinueforsignedvoiddefaultg
4、otosizeofvolatiledowhilestaticifautocase定义一个多维数组,数组第一行存放关键字,数组第二行存储hash函数处理后关键字结点地址,用hash函数存储关键字Hash(Key)=(Key第一个字符在1-26个字母中的序号)*100+(Key最后一个字符在1-26个字母中的序号)41如此得至妆口for对应地址3,if对应于地址4,int对应地址18等等。哈希表仪1丫)40州0口41处理冲突为线性探测再散列。三、算法设计及局部函数翻开含关键字的CPP文件:intOpen(char+filename)(charwordMaxLength,ch:inti:FILE*r
5、ead;指向FILE类的指针*readif(read=fopen(fiIename,*r*)=NULL)只读方式读取文件,如果为空COUtendk”未找到要翻开的文件,请重新输入!;return-1;跳出OPen函数)while(!feof(read)判断文件是否结束,到末尾函数值为“真”即非0(i=0;ch=fgetc(read);读取一个字符whiIe(LetterNot(Ch)=O&feof(read)=0)ch=fgetc(read);如果不是字母就接着读取,关键字都是由字母组成的while(LetterNot(ch)=l&feof(read)=0)if(i=MaxLength)(wh
6、iIe(LetterNot(ch)=1&feof(read)=0)(ch=fgetc(read);/超过MXLEN的长度那么一定不为关键字,把余下连一起的字母都读取)i=0;break;)else(WOrdi+=ch;把读取到的字母存入word数组中ch=fgetc(read);)wordi=*0,;if(KeywordsNot(word)(CreatHash(word);)fclose(read);COUtendk”文件中关键字已经存入表中,请继续!1血11鼠11血1;)在Hash表中查找关键字找出关键字位置:intFindHash(char*keyword)在HaSh表中查找关键字intk
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 算法 课程设计 报告 利用 技术 统计 源程序 关键字 出现 频度
