- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
武汉纺织大学数据结构实验报告4
武汉纺织大学《数据结构》实验报告
班级: 信管 专业 班 姓名: 学号:
实验时间: 年 月 日 指导教师:
实验四:查找操作与应用
一、实验目的:
1、掌握顺序查找、折半查找、哈希查找的基本方法和操作过程
2、掌握查找效率的分析方法
二、实验内容:
1、编写程序,实现顺序查找操作,可参考书本P260示例程序。
实验步骤:
①、在Java语言编辑环境中新建程序,建立一个顺序表(表长10),依次输入10个数据元素(对元素存放的先后顺序没有要求),并按照存储顺序输出所有元素;
②、输入带查找关键字,在顺序表中进行顺序查找;
③、输出查找结果。
2、编写程序,实现有序表折半查找操作,可参考书本P263示例程序。
实验步骤:
①、在Java语言编辑环境中新建程序,建立一个顺序表(表长10),依次输入10个数据元素(要求所有元素按照递增顺序排列),并按照存储顺序输出所有元素;
②、输入带查找关键字,在有序表中进行折半查找;
③、输出查找结果。
3、编写程序,实现哈希表查找操作。
实验步骤:
①、在Java语言编辑环境中新建程序,建立一个顺序表(表长12),依次输入10个数据元素,并按照存储顺序输出所有元素;
②、输入带查找关键字,在哈希表中进行查找;
③、输出查找结果。
已知:哈希函数为H(key)=key MOD 11,采用开放地址法、线性探测再散列解决冲突,输入元素为{ 55,19,31,23,68,20,27,9,10,79}。
三、操作步骤:
1.顺序查找
(1)将顺序查找方法添加入SeqList.java中
//顺序表查找关键字为key元素,返回首次出现的元素,若查找不成功返回-1
//key可以只包含关键字数据项,由 T 类的equals()方法提供比较对象相等的依据
public int indexOf(T key){
if(key != null)
for(int i=0;ithis.len;i++)
if(this.element[i].equals(key))//对象采用equals()方法比较是否相等
return i;
return -1;//空表,key为空对象或者未找到时
}
public T search(T key) {//查找,返回首次出现的关键字为key的元素
int find = this.indexOf(key);
return find == -1?null:(T)this.element[find];
}package search;
import java.util.Scanner;
/**
*
* @author pang
*
*/
public class Linearsearch {
public static void main(String[] args){
SeqListInteger list = new SeqListInteger(10);
list.append(2);
list.append(3);
list.append(4);
list.append(5);
list.append(6);
list.append(7);
list.append(8);
list.append(9);
list.append(10);
list.append(11);
System.out.println(list.toString());
System.out.println(输入要查找的数:);
Scanner scan = new Scanner(System.in);
while(true){
int key = scan.nextInt();
System.out.println(顺序查找: +list.search(key));
}
}
}
(3)运行结果
2.折半查找
(1)将折半查找方法添加入SeqList.java中
//在按升序排序的数组中,折半查找关键字为key元素,若找到返回下标,否则返回-1
public int binarySearch(T key){
int begin = 0;
int end = this.len-1;
if(key != null)
while(begin=end){//边界有效
int mid = (b
您可能关注的文档
- 必修二第二轮复习随堂选择题.doc
- 微生物降解技术处理含油钻屑的应用研究.docx
- 必修二第六课殖民扩张与世界市场的拓展课时练.doc
- 必修二五六章综合习题.doc
- 快乐的海洋动物教案.doc
- 怎样做好连词成句的题目-语文.docx
- 怎样成为一名合格的机动车驾驶教练员.doc
- 怎样涵养新家风.doc
- 思想品德期中考试试卷201611.doc
- 怪诞行为学精华摘录.docx
- 第18讲 第17课 西晋的短暂统一和北方各族的内迁.docx
- 第15讲 第14课 沟通中外文明的“丝绸之路”.docx
- 第13课时 中东 欧洲西部.doc
- 第17讲 第16 课三国鼎立.docx
- 第17讲 第16课 三国鼎立 带解析.docx
- 2024_2025年新教材高中历史课时检测9近代西方的法律与教化含解析新人教版选择性必修1.doc
- 2024_2025学年高二数学下学期期末备考试卷文含解析.docx
- 山西版2024高考政治一轮复习第二单元生产劳动与经营第5课时企业与劳动者教案.docx
- 第16讲 第15课 两汉的科技和文化 带解析.docx
- 第13课 宋元时期的科技与中外交通.docx
文档评论(0)