实验六指导书

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验六:查找实验实验任务书

一、实验目的及要求

(1)熟练掌握各种静态查找表方法(顺序查找、折半查找、索引顺序表等);

(2)熟练掌握二叉排序树的构造方法和查找算法;

(3)了解和掌握其它查找方法。

二、实验内容

1.顺序查找算法的实现(必做);

2.折半查找算法的实现(必做);

3.二叉排序树的构造、查找、插入及删除算法的实现(必做);

4.Hash表查找算法实现(选做)。

三、实验准备

(1) 计算机设备;

(2) 程序调试环境的准备,如Devc++环境;

(3) 实验内容的算法分析与代码设计与分析准备。

四、实验背景知识

1. 查找的概念

查找是计算机操作中经常做的操作,日常我们使用计算机时90%上的操作都是在做查找,如我们在搜索引擎上搜索某一感兴趣的内容。查找分为静

态查找(仅作查询和检索操作)和动态查找(在查询之后,还需要将“查询”

结果为“不在查找表中”的数据元素插入到查找表中;或者,从查找表中删

除其“查询”结果为“在查找表中”的数据元素)。

2.查找表的存储结构

我们可以将查找表看做成线性表,所以查找表的存储结构即为线性表的存储结构,可以使用顺序存储,也可用链式存储方式表示查找表。根据不同的查找方法,选用合适的存储方式表示查找表。

五、设计与实现指导

查找表的ADT

分析问题的第一步仍然是抽象出数据元素及其之间的关系,同时考虑其上的基本操作,这就是ADT研究的内容。

//请同学们给出线性表的ADT,必须有前面介绍的基本操作

ADT SearchList{

数据://完成.......

运算:

//完成.......

}

1.查找表的有关操作

(1)顺序查找

可以分别用顺序表和链表表示查找表,完成顺序查找。

//完成对应函数.int SqSearch(List l,int x)......

(2)折半查找

由于折半查找要求表中的数据是有序的,所以如果用折半查找,首先确保数据有序的,其次表应该使用顺序表表示。

//完成对应函数.....int BiSearch(List l,int x)....

(3)二叉排序树

根据二叉排序树的特点,可以先构造一个二叉排序树(用插入方法创建)、然后对其进行中序遍历即得一个递增序列,并对其完成删除结点的操作。

(4)Hash表创建及查找

自己设计一个哈希函数及处理冲突的方法,构造一个哈希表,并对给定的数据进行查找操作。

(3)主程序模块定义(建议用菜单驱动程序)

主程序结构:

菜单显示;

选择操作;

下为二叉排序树程序运行部分界面图:

(4)测试数据及测试结果

1)//要求对每个必做的实现给出测试数据并测试

注意:总结部分要有主要算法的复杂度分析。

相关文档
最新文档