下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
《数据结构》实验指导
实验八:查找方法的实现
一、实验目的
1、掌握查找的基本概念。
2、掌握线性表的查找方法。
3、掌握树表的查找方法。
4、了解哈希表的查找方法
二'实验学时
2学时
三'实验类型
综合性实验
四、实验需求
1、硬件
每位学生配备计算机一台;
2、软件
WindowsXP/Windows7操作系统;开发工具软件:MicrosoftVisualStudio2010。
五'实验理论与预备知识
1、查找的基本概念。
2、线性表的查找方法。
3、树表的查找方法。
4、哈希表的查找方法
六'实验任务
1、顺序查找和折半查找的代码实现
2、编写应用程序,用相关数据验证运算算法
七'实验内容及步骤
任务:代码实现顺序表的创建、显示、查找;编写应用程序,用相关数据验证运算算法。
实验步骤:
(1)启动VisualStudio2010,创建窗体应用程序。
(2)创建顺序表的存储结构,包括创建、显示、查找等方法,代码参考如下:
structRecType〃记录类型
publicintkey;〃存放关键字
publicstringdata;〃存放其他数据
)
classSqListSearchClass
(
constintMaxSize=100;〃顺序表中最多元素个数
publicRecType[]R;〃顺序表
publicintlength;〃存放顺序表的长度
stringsstr;〃用于返回结果
publicSqListSearchClass()〃构造函数,用于顺序表的初始化
(
R=newRecType[MaxSize];
length=0;
)
//...........顺序表的基本运算算法
publicvoidCreateList(string[]split)〃由split中的元素建立顺序表
inti;
for(i=0;i<split.Length;i++)
R[i].key=Convert.ToInt32(split[i]);
length=i;
publicstringDispList()〃将顺序表L中的所有元素构成一个字符串返回
(
inti;
if(length>0)
(
stringmystr=R[0].key.ToString();
for(i=1;i<length;i++)〃扫描顺序表中各元素值
mystr+=""+R[i].key.ToString();
returnmystr;
elsereturn"空串
)
//.............各种查找算法.......
publicintSeqSearch(intk,refintcn)〃顺序查找算法
{
inti=0;
cn=0;〃统计关键字比较次数
while(i<length&&R[i].key!=k)〃从表头往后找
(
cn++;
i++;
)
if(i>=length)〃未找到返回0
return0;
else
{
cn++;
returni+1;〃找到返回逻辑序号i+1
(3)通过一串整数的输入,创建数据元素为整数的顺序表,显示顺序表,实现查找操作。
设计界面,参考如下:
9Fond□0B
操作步豢”建立感序表
洽入关催字序列:
2,6,749,1,5,3,8,0
建立顺序表
例如给入:3,8,2,4.最多不超过100个元素
操作步骤2-输出J*序表
输出顺序表2674915380
操作步骤3-查找最大元素和最小元素
查找最大元素:9最小元素:0
操作步骤3-查找指定元素是否存在
查找元素:7查找
该元素为顺序表中的第3个元素,比较了3次.
(4)编写窗体中按钮等控件的代码,调用循环顺序队列类,参考如下:
SqListSearchClassL=newSqListSearchClass();
privatevoidForml_Load(objectsender,EventArgse)
(
textBoxl.Text="2,6,7,4,9J,5,3,8,0”;
)
privatevoidbuttonl_Click(objectsender,EventArgse)
{
stringstr=textBoxl.Text.Trim。;
if(str==
infolabel.Text="操作提示:必须输入关键字序列”;
else
{
string[]split=str.Split(\');
L.CreateList(split);
if(L.length<=3)
infolabel.Text=”操作提示:输入的关键字个数太少”;
return;
}
)
}
privatevoidbutton2_Click(objectsender,EventArgse)
(
textBoxl.Text=L.DispListO;
infolabel.Text=”操作提示:待查找的数据显示完毕”;
)
privatevoidbutton3_Click(objectsender,EventArgse)〃求顺序表中的最大值
和最小值
(
)
privatevoidbutton4_Click(objectsender,EventArgse)
(
intnum=int.Parse(textBox6.Text);
inta=0;
intp=L.SeqSearch(num,refa);
if(p==0)
infolabel.Text="进行了"+a+”比较,该元素不存在!]
else
infolabel.Text="该元素为顺序表中的第“+p+”个元素,比较了“+a+”次。
»».
)
(5)调试运行,并观察运行情况。
(6)在类中增加查找最大值最小值的方法:publicvoidM
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026广东广州白云区景泰街道市政服务所招聘环卫工人3人备考题库含答案详解(研优卷)
- 2026东北师范大学教育学部招聘专任教师8名备考题库及一套完整答案详解
- 2026黑龙江黑河市金运新碳材料科技有限公司招聘工作人员3人备考题库及答案详解(历年真题)
- 2026广东广州市黄埔区红山街道招聘政府聘员3人备考题库含答案详解(黄金题型)
- 2026广东韶关学院招聘辅导员30人备考题库(编制)及答案详解(新)
- 2026贵州贵阳市观山湖区第三十六幼儿园(第一分园)招聘2人备考题库及答案详解(有一套)
- 2026陕西西安长安区韦曲南街社区卫生服务中心招聘5人备考题库及答案详解(新)
- 2026山西朔州市朔城区人民医院(朔州市人民医院)引进急需紧缺专业人才20人备考题库含答案详解(完整版)
- 2026福建福州市中医院招聘高层次人才11人备考题库及一套参考答案详解
- 2026河南洛阳人才人仕实业有限公司招聘2人备考题库及答案详解(新)
- 市政管网建设重大危险源管控措施
- 个人防护与手卫生规范
- 山东春季高考《数学》历年考试真题题库(含答案)
- JG/T 487-2016可拆装式隔断墙技术要求
- 25春国家开放大学《药剂学(本)》形考任务1-3参考答案
- 预算绩效目标管理指标汇编
- 电商平台服务协议、交易规则
- 电梯安装安全培训
- 华东理工大学《无机非金属材料热工过程及设备》2023-2024学年第一学期期末试卷
- 五年(2020-2024)高考语文真题分类汇编专题04 古代诗歌鉴赏(原卷版)
- 新生儿胎粪性吸入综合征
评论
0/150
提交评论