数据结构课程设计报告册

发布 2022-10-05 19:43:28 阅读 6408

实验报告。题目有关查找的操作。

学院 专业信息管理和信息系统。

班级 学号

学生姓名 同组成员

指导教师 编写日期2024年7月8日。

目录。一、问题描述 2

1、顺序表的查找问题描述 2

2、有序表的查找问题描述 2

3、哈希表的查找问题描述 3

4、二叉树排序数的查找问题描述 3

5、界面设计模块问题描述 3

二、问题分析 4

三、数据结构描述 4

四、算法设计 6

1.程序功能模块图 6

2. 算法设计 6

五、详细程序清单 11

六、程序运行结果 31

七、使用说明 32

八、心得体会 32

顺序查找又称线性查找,它是一种最简单、最基本的查找方法。它从顺序表的一端开始,依次将每一个数据元素的关键字值与给定key进行比较,若某个数据元素的关键字值等于给定值key,则表明查找成功;若直到所有数据元素都比较完毕,仍找不到关键字值为key的数据元素,则表明查找失败。

所谓“折半”也称为“二分”,故二分查找又称为折半查找。作为二分查找对象的数据必须是顺序存储的有序表,通常假定有序表是按关键字值从小到大排列有序,即若关键字值为数值,则按数值有序,若关键字值为字符数据,则按对应的unicode码有序。二分查找的基本思想是:

首先取整个有序表的中间记录的关键字值与给定值相比较,若相等,则查找成功;否则以位于中间位置的数据元素为分界点,将查找表分成左、右两个子表,并判断待查找的关键字值key是在左子表还是在右子表,再在左或右子表中重复上述步骤,直到找待查找的关键字值为key的记录或子表长度为0.

在哈希表上进行查找的过程和哈希表构造的过程基本一致。给定要查找的关键字k的值,根据构造哈希表时设定的哈希函数求得哈希地址,若此哈希地址上没有数据元素,则查找不成功;否则比较关键字,若相等,则查找成功;若不相等,则根据构造哈希表时设置的处理冲突的方法找下一个地址,直至某个位置上为空或关键字比较相等为止。

从哈希表的查找过程可见,虽然哈希表是在关键字和存储位置之间直接建立了映像,然而由于冲突的产生,哈希表的查找过程仍然是一个和关键字比较的过程。因此,仍需用平均查找长度来衡量哈希表的查找效率。查找过程中与关键字比较的次数取决于构造哈希表时选择的哈希函数和处理冲突的方法。

哈希函数的“好坏”首先影响出现冲突的频率,假设哈希函数是均匀的,即它对同样一组随机的关键字出现冲突的可能性是相同的。因此,哈希表的查找效率主要取决于构造哈希表时处理冲突的方法。

在顺序表的3中查找方法中,二分查找具有最高的查找效率,但是由于二分查找要求表中记录按关键字有序,且不能用链表做存储结构,因此当表的插入、删除操作非常频繁时,为维护表的有序性,需要移动表中很多记录。这种由移动记录引起的额外时间开销,就会抵消二分查找的优点。这里讨论的不仅是二叉排序树具有二分查找的效率,同时又便于在查找表中进行记录的增加和删除操作。

设计一个菜单式界面,让用户可以选择要解决的问题,同时可以退出程序。界面要求简洁明了,大方得体,便于用户的使用,同时,对于用户的错误选择可以进行有效的处理。

本人负责的是为用户设计菜单界面,使用户可以根据菜单进行选择其中的某个问题进行处理。对于一个菜单界面,首先要求界面简单明了,使得用户可以轻松通过界面知道如何获取自己想要的操作。其次,我们不能保证用户每次的选择都是有效的,即用户的选择是在我们提供的服务范围之内,所以要设计容错操作,即当用户的选择超出我们提供的范围时,提示用户重新选择。

最后,要保证用户选择相应的操作后,程序能正确的按照用户的选择运行下去,完成用户的要求。

public seqlist(int maxsize)

// 求顺序表中的数据元素个数并由函数返回其值。

public int length()

public int getcurlen()

public void setcurlen(int curlen)

public int binarysearch(comparable key)

return -1; /查找不成功。

public class search

public static void main(string args) throws exception{

createseachlist();

"请输入要查找的关键字:")

scanner sc=new scanner(

keytype key1=new keytype(

keytype key2=new keytype(

"binaryseqsearch("+

"binaryseqsearch("+

1、xuanze类。

import

public class xuanze{

static seqlist st=null;

数据结构课程设计报告

东莞理工学院城市学院。题目 二叉排序树 专业 计算机科学与技术 本 年级 2010级计算机科学与技术专业 1 班。个人姓名 何振江。指导教师 张娟老师 时间 2010至2011第二学期第18周 地点 实验楼615机房 东莞理工学院城市学院计算机与信息科学系制。2011年 6月。实习报告的内容。一 问...

数据结构课程设计报告

设计一个校园导游程序,为来访的客人提供信息查询服务。1 设计学校的校园平面图。选取若干个有代表性的景点抽象成一个无向带权图 无向网 以图中顶点表示校内各景点,边上的权值表示两景点之间的距离。2 存放景点代号 名称 简介等信息供用户查询。3 为来访客人提供图中任意景点相关信息的查询。4 为来访客人提供...

数据结构课程设计报告

河北科技大学。课程设计报告。学生姓名学号。专业班级。课程名称数据结构。学年学期 2 012 2 013学年第 2 学期指导教师 黄春茹。2 0 13年 6 月。课程设计成绩评定表。一 数据结构课程设计目标。二 问题描述。三 需求分析。四 概要设计。五 详细设计。六 软件说明书 给出软件如何使用,使用...