文件大小:58.00KB 适用专业:数据结构 适用年级:大学 论文编号:104900 论文简介: 数据结构课程设计报告-统计c源程序中的关键字出现的频率
一、题目
统计c源程序中的关键字出现的频率
二、算法思想描述
本程序是扫描一个c源程序,有Hash表存储程序中出现的关键字,并统计该程序中的关键字出现的频度。用线性探测法解决Hash冲突。设Hash函数为:Hash(key)=[(key的第一个字母序号)*100+(key的最后一个字母序号)] MOD 41。
算法思想如下:
建立一个结构体数组的hash表,存放读入的关键字和其出现的次数。先初始化并建立该hash表,先初始化为”0”,0,再从文件中一个个读入所有关键字,存放在hash表中相应位置。
从另一文件中一行行读入,找出其中非注释中的,也非“”中的,长度2-8个字符的小写字符串,用hash查找,看该单词是否关键字,如是其出现次数加一,若不是就继续下一个这样的字符串,直至文件尾。在找这样的字符串途中,遇到无法匹配的单或双引号打印出出现在第几行。
Hash表建立好后打印出来。
其中核心算法分为两块:1.hash表的建立和hash查找。2.寻找上述的字符串。
1.建立Hash表的算法:
该函数实参为已建立的hash表和在c源程序中找到的一个小写字母字符串。
从该字符串key为下标处依次开始查找,到数组末尾是返回数组头(key=(key+1)%44;),分两种情况:
①若先找到空位,说明该字符串不是关键字。则不改变hash表。
②若先找到了该关键字的纪录,则该字符串是关键字,++hash[key].num;
......
论文文件预览: 共1文件夹,1个文件,文件总大小:58.00KB,压缩后大小:31.12KB
- 数据结构课程设计报告-统计c源程序中的关键字出现的频率
- st3.doc [58.00KB]
|