- 1、本文档共7页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验五查找运算实现
实验五 查找运算实现
(2课时)
一、实验目的
掌握各种查找方法的基本思想,根据实际问题实现简单应用;
二、实验要求
程序结构清晰、语句完整,包含有头文件和main函数;
格式正确,语句采用缩进格式;
设计子函数实现题目要求的功能;
三、实验设备、材料和工具
turboc2,win-tc.vc++
四、实验内容和步骤
1.用折半查找法实现对10个整数的查找。
2.用哈希查找实现对10个字符的查找。(假设字符互不相同,M取13)
五、实验报告要求
根据实验内容初步设计好程序,并从理论上排除错误;
针对程序的健壮性准备好测试数据;
结果分析中如实填写运行后的结果,并记录调试过程中的重要问题和解决方法。
源程序以电子版的形式保存,不必写在报告上。
六、运行结果及分析
1.实验程序
#include stdio.h
#include stdlib.h
#define LIST_SIZE 20
typedef char KeyType;
typedef int OtherType;
typedef struct
{
KeyType key;
OtherType other_data;
}RecordType;
typedef struct
{
RecordType r[LIST_SIZE+1]; /* r[0]为工作单元 */
int length;
}RecordList;
void createlist(RecordList *l)
{
int i;
int len;
KeyType ch;
printf(请输入线性表的长度:);
scanf(%d,len);
l-length = len;
for(i=1; i=len; i++)
{
printf(请输入线性表的第%d个元素:,i);
fflush(stdin);
scanf(%c,ch);
l-r[i].key = ch;
}
}
int BinSrch(RecordList l, KeyType k)
/*在有序表l中折半查找其关键字等于k的元素,若找到,则函数值为该元素在表中的
位置*/
{
int low,high,mid;
low=1;
high=l.length;/*置区间初值*/
while( low = high)
{
mid=(low+high) / 2;
if( k==l.r[mid]. key)
return (mid);/*找到待查元素*/
else
if (kl.r[mid]. key)
high=mid-1;/*未找到,则继续在前半区间进行查找*/
else
low=mid+1;/*继续在后半区间进行查找*/
}
return (0);
}
void main()
{
RecordList l;
int locate;
KeyType k;
createlist(l);
printf(请输入要查找的元素:);
fflush(stdin);
scanf(%c,k);
locate = BinSrch(l,k);
if(locate == 0)
printf(未找到!\n);
else
printf(该元素在表中的位置为%d\n,locate);
}
运行结果:
2.实验程序
#include stdio.h
#include stdlib.h
#include string.h
#define m 30
#define NULLKEY NULL
typedef struct
{
char *key;
}RecordType;
typedef RecordType HashTable[m];
int hash(char *k)
{
int h;
char k0;
k0 = k[0];
h=k[0]-96;
return h;
}
void createhash(HashTable *ht)
{
int i,j;
int n;
char p[10];
int hj;
for(i=0; im; i++)
(*ht)[i].key = NULLKEY;
printf(请输入哈希表的元素个数:);
scanf(%d,n);
for(i=1; i=n; i++)
{
printf(请输入第%d个元素:,i);
fflush(stdin);
gets(p);
j = hash(p);
// printf(ok%d\n,j);
if ((*ht)[j].key == NULLKEY
您可能关注的文档
- 实用下料问题.doc
- 实用版生产一线员工技术等级评定办法.doc
- 实用手机万能充电器电路原理图和分析说明.doc
- 实用软件应用技巧考试82分.doc
- 实用箱盒安装作业指导书.doc
- 实训3 燃油压力调节器的检测.doc
- 实施行施工组织设计汇报材料.doc
- 实训7-1 计算机病毒防范技术.doc
- 实训5-2漏洞检测工具MBSA.doc
- 实用的简单英语单词汇总.doc
- 2022年3月公共英语三级英语PETS3试题及答案解析.docx
- 北京第四范式智能技术股份有限公司2023年环境、社会及管治报告.pdf
- 风神股份:2023年度环境、社会及公司治理(ESG)报告.pdf
- 海信家电:2023年环境、社会与管治报告.pdf
- 纳微科技:2023年度环境、社会及治理(ESG)报告暨社会责任报告.pdf
- 锦欣生殖医疗集团有限公司2023环境、社会及管治报告.pdf
- ST洲际:公司2023环境、社会和公司治理(ESG)报告.pdf
- 中化化肥控股有限公司2023年环境、社会及管治报告.pdf
- 三雄极光:2023年度环境、社会及治理(ESG)报告.pdf
- 泰林科建控股有限公司二零二三年环境、社会及管治报告.pdf
文档评论(0)