- 1、本文档共3页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
哈希
一、实验目的
1.掌握什么是哈希表和哈希函数。
2.掌握哈希表的构建和哈希查找。
二、实验环境
1.硬件:每个学生需配备计算机一台。操作系统: DOS 或 Windows
2.软件: DOS 或 Windows 操作系统 +Turbo C;
三、实验要求
1.设计一个哈希表。哈希函数用除留余数法构造,用线性探测再散列处理冲突。
2.学生成绩报告单。任给任一学生学号即可打印出该生的成绩报告单。
3.学生学号可以不按照顺序。
四、实验内容
1.现在某个学院有 20 名同学,每个同学记录包括:班级、学号 、姓名和语文、数学、外语等三门课程成
绩(学号为 2 位整数)。
2. 以学号为主关键字,用除留余数法构造哈希函数(请先考虑除数 p 的选择原则是什么?) ,用线性探测再
散列处理冲突构建哈希表。
3.输入任何一个学生学号,输出该学生的信息。
4.说明线性探测再散列处理的优缺点,用链地址法在实现。
#include stdio.h
#include stdlib.h
#include string.h
#define MAXSIZE 100
int sum;
typedef struct
{char key[3];
int count;
} hashtable_hc[MAXSIZE];
int hash_hc(char s[])
{return (s[0] +s[1]) %3;}
void insertht_hc(hashtable_hc ha,char k[])
{int i,p;
p=hash_hc(k);
if (strcmp(ha[p] .key, )==0)
{ strcpy(ha[p] .key,k);
ha[p] .count=1;}
else
{ i=0;
do{ ha[p] .count++;
p=(p+ 1)%MAXSIZE;
i++;}while (strcmp(ha[p] .key, )!= 0);
strcpy(ha[p] .key,k);
ha[p] .count=i; }}
void createht_hc(hashtable_hc ha)
{int i;
char x[3];
for (i = 0;i MAXSIZE;i ++)
{ strcpy(ha[i] .key, );
ha[i] .count =0;}
printf( 请输入学号 :\n );
for (i = 0;i sum;i ++)
{ flushall();gets(x);
insertht_hc(ha,x);}}
void searchht_hc(hashtable_hc ha,char k[])
{int i =0,p;
p=hash_hc(k);
while (strcmp(ha[p] .key,k) !=0 ha[p] .count!= 0)
{ p=(p +1)%MAXSIZE;i ++ ;}
if (strcmp(k,ha[p] .key)== 0)
printf( 找到关键字 ,地址为 :%d,学号为 :%s\n ,p,ha[p] .key);
else printf( 未找到 .\n );}
void dispht_hc(hashtable_hc ha)
{int i,j =0,k =1;
printf( 哈稀表为 (学号 ,位置 ):\n );
for (i = 0;i MAXSIZE;i ++)
{if (strcmp(ha[i] .key, )!=0)
{ k++;printf( (%s , %d) ,ha[i] .key,i);
if (++j %4 ==0)printf( \n ); }
if (ksum)break;}}
void main()
{ hashtable_hc ha;
char num[3],ch[] = # ;
printf( 输入总人数不大于 %d: ,MAXSIZE);
scanf(%d , sum);
createht_hc(ha);
dispht_hc(ha);
do{ printf( \n 输入要查找的学号 : );
flushall();gets(nu
您可能关注的文档
最近下载
- 2024年安徽省高考化学真题卷(含答案与解析).pdf VIP
- 司马光的故事市公开课一等奖省赛课微课金奖PPT课件.pptx
- 2014010904013王亮森题目四.docx
- 《国有企业管理人员处分条例》考试题库200题(含答案).docx
- 2023年楚雄师范学院计算机科学与技术专业《操作系统》科目期末试卷A(有答案).docx VIP
- 《接力切换技术原理》课件.pptx VIP
- 电子科技大学820计算机专业基础考研真题试题(含答案)2011—2016年.pdf
- 公司治理:基本原理及中国特色-姜付秀-第10章+法律机制.pptx VIP
- 课件:兽药的合理使用.ppt
- 弗莱雷《被压迫者教育学》.pdf
文档评论(0)