欢迎来到天天文库
浏览记录
ID:33141482
大小:84.61 KB
页数:20页
时间:2019-02-21
《课程设计报告-哈希表》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、数据结构课程设计(哈希表的设计)院系专业班级学生姓名学号课程设计日期:2011年6月26日至2011年7月7日第20页共20页目录一、问题描述......................................................3二、需求分析1、基本要求……………………………………………32、测试数据.......................................................3三、概要设计......................................................3四、详细设
2、计......................................................4五、测试分析.....................................................11六、课程设计总结.............................................13七、附录(源代码).........................................14第20页共20页一、问题描述针对自己班级体中的“人名”设计一个哈希表,使得平均查找长度不超过R,完成相应的建表和查表程序
3、。二、需求分析基本要求:假设人名为中国姓名的汉语拼音模式。待填入哈希表的人名共有30个,取平均查找长度的上限为2。哈希函数用除留余数法构造,用链表法处理冲突。测试数据:输入30个人的姓名拼音,即30个字符串,然后用除留余数法构建哈希表并用链表法处理冲突,最后将结果输出,程序自动计算查找长度的总数和平均查找长度,然后用户可以根据需求进行查找操作。三、概要设计开始i=0,keyi++Nikry_code第20页共20页em->next=NULLkey=em->
4、key_code%pNht[key].key=NULLKEYNULLKEYNULLKEYNULLKEYNht[key].key==keyYht[key].key=keyYht[key].next=emp=ht[key].nextNp->next!=NULLp->next=emYp=p->next结束一、详细设计头文件#include#include#include#include#defineP30/*除数余留法中的除数*/第20页共20页#defineNULLKEY0#defineMA
5、X30/*人名个数*/#definehashlen30/*哈希表长度*/intsum=0,k=0;typedefstructNode/*哈希表结构体*/{charkey_code[10];/*哈希表地址*/structNode*next;}Node;typedefstructhashtable/*创建哈希表*/{intkey;structNode*next;}HashTable[MAX];intHash(intkey){intmode=key%P;/*除留余数法得到的余数*/returnmode;}voidHash_Init(HashTableht)/*哈希表初
6、始化*/{inti;for(i=0;ikey_code));Node*p;p=(Node*)malloc(sizeof(Node));if(ht[key].key==NULLKEY){ht[key].
7、key=key;ht[key].next=node;k++;}elseif(ht[key].key==key){p=ht[key].next;k++;while(p->next!=NULL){p=p->next;k++;}p->next=node;k++;}return1;}Node*Hash_Search(HashTableht,intkey)/*查找函数*/第20页共20页{intp0=Hash(key);if(ht[p0].key==NULLKEY){sum++;returnNULL;}elseif(ht[p0].key==p0){Node*p=ht[p0
8、].next;while
此文档下载收益归作者所有