- 1、本文档共9页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《数据结构》实验报告查找
实验四 ——查找
实验目的
掌握顺序表的查找方法,尤其是折半查找方法;
掌握二叉排序树的查找算法。
实验内容
建立一个顺序表,用顺序查找的方法对其实施查找;
建立一个有序表,用折半查找的方法对其实施查找;
建立一个二叉排序树,根据给定值对其实施查找;
对同一组数据,试用三种方法查找某一相同数据,并尝试进行性能分析。
实验预习内容
实验一包括的函数有:typedef struct ,创建函数void create(seqlist L),输出函数void print(seqlist L),顺序查找int find(seqlist L,int number),折半查找int halffind(seqlist L,int number)
主函数main().
实验二包括的函数有:结构体typedef struct, 插入函数void insert(bnode * T,bnode * S),void insert1(bnode * T),创建函数void create(bnode * T),查找函数bnode * search(bnode * T,int number),主函数main().
上机实验
实验一:
实验源程序。
#includeiostream.h
#define N 80
typedef struct
{
int number; //关键字
char name[5];
char sex[2];
int age;
}record;
typedef struct
{
record stu[N];
int num;//记录人数
}seqlist;
//建顺序表
void create(seqlist L)
{
int i;
L.num=0;
cout请依次输入(输入学号为0认定为终止输入):endl;
cout学号\t姓名\t性别\t年龄endl;
cinL.stu[1].number;
for(i=1;L.stu[i].number!=0;)
{
cinL.stu[i].nameL.stu[i].sexL.stu[i].age;
L.num++;
coutendl;
cinL.stu[++i].number;
}
}
//输出学生信息
void print(seqlist L)
{
int i;
cout学生基本信息为:endl;
for(i=1;i=L.num;i++)
cout\tL.stu[i].number\tL.stu[i].name\tL.stu[i].sex\tL.stu[i].ageendl;
}
//顺序查找
int find(seqlist L,int number)
{
int i;
for(i=L.num;i=0;i--)
if(L.stu[i].number==number)
return i;
}
//折半查找
int halffind(seqlist L,int number)
{
int high=L.num,low=1,mid;
for(;low=high;)
{
mid=(high+low)/2;
if(number==L.stu[mid].number)
return mid;
else
if(numberL.stu[mid].number)
high=mid-1;
else
low=mid+1;
}
return 0;
}
void main()
{
int i,number;
seqlist L;
create(L);
print(L);
cout折半查找:endl;
cout输入学生学号:;
cinnumber;
if((i=halffind(L,number))!=0)
cout\tL.stu[i].number\tL.stu[i].name\tL.stu[i].sex\tL.stu[i].ageendl;
else
cout失败!endl;
cout顺序查找:endl;
cout输入学生学号:;
cinnumber;
if((i=find(L,number))!=0)
cout\tL.stu[i].number\tL.stu[i].name\tL.stu[i].sex\tL.stu[i].ageendl;
else
cout失败!endl;
}
实验二:
#includeiostream.h
typedef struct
{
int number; //关键字
char name[5];
char sex[2]
您可能关注的文档
- 《区域地质学》期末论文.docx
- 《单片机技术》课程整体设计.doc
- 《古汉语》课程100部参考书目.doc
- 《因数中间有0的乘法》教学设计.doc
- 《地杰人灵看河南浅谈白居易》.doc
- 《培养学生自主学能力的策略》国家三等2010年11月11日.doc
- 《天津市预拌混凝土买卖合同》(JF-2006-029).doc
- 《如果让我重新读次研究生--2》.doc
- 《小型通信系统设计与制作》任务书.doc
- 《导游基础知识》大专授课计划.doc
- DB15T2250-2021 食用向日葵沟膜垄植栽培技术规程.pdf
- QHDCF1003S-2022 食品安全-鲜炖花胶.pdf
- DB22T2739-2017 生猪屠宰厂标准化屠宰检验操作规程.pdf
- 2025年彩色电视发射机项目可行性研究报告.docx
- 2025年苏州经贸职业技术学院高职单招职业技能测试近5年常考版参考题库含答案解析.docx
- 2025至2030年布艺编织座垫项目投资价值分析报告.docx
- 2025至2030年红色反光布项目投资价值分析报告.docx
- 2025年中国高档镶嵌型可挂旋具市场调查研究报告.docx
- 2025至2030年中国凸缘单板式电磁刹车器数据监测研究报告.docx
- 2025至2030年固定喷雾球项目投资价值分析报告.docx
文档评论(0)