数据结构实验报告8 下载本文

内容发布更新时间 : 2024/5/2 21:55:44星期一 下面是文章的全部内容请认真阅读。

宜宾学院实验报告

课程名称 院系 学号 实验日期 数据结构 计算机学院 实验名称 查找(一) 班级 姓名 实验教室 基础五 16级5班 专业 子墨 指导教师 阳万安 软件工程 161105024 2017.10.31 评阅意见 一、 实验目的和要求(本次实验所涉及并要求掌握的知识点) 1. 掌握顺序查找、折半查找算法的思想 2. 能完整正确实现顺序查找、折半查找算法 二、实验内容 1. 2. 3. 4. 分别建立一个静态无序表和有序表。 写一个操作函数实现顺序查找算法。 写一个操作函数实现折半查找算法。 在main函数中输入数据,测试顺序查找和折半查找算法的正确性。 三、实验环境(本次实验所需要的平台和相关软件) VC++ 6.0 四、实验步骤(针对本次实验计划安排的实验内容写具体实现步骤) 1. 打开VC++6.0,新建一个win32 控制台工程 2. 添加一个c++文件,命名为exp8 3. 写入以下代码 #include #include #define N 10 #define KeyType int #define EQ(a,b) ((a)==(b)) #define LT(a,b) ((a)<(b)) typedef struct{ KeyType key; }SElemType; typedef struct{ SElemType *elem; int length; }SSTable; 第1页共6页

//无序静态查找表顺序查找 int Search_Seq(SSTable ST,KeyType key) { ST.elem[0].key=key; for(int i=ST.length; !EQ(ST.elem[i].key,key); --i); return i; } //有序静态查找表折半查找 int Search_Bin(SSTable ST,KeyType key) { int low=1; int high=ST.length; int mid=0; while(low<=high) { mid=(low+high)/2; if(EQ(key,ST.elem[mid].key)) return mid; else if(LT(key,ST.elem[mid].key)) high=mid-1; else low=mid+1; } return 0; } int main(void) { //测试无序表顺序查找 int key; SSTable ST; ST.elem=(SElemType *)malloc(N*sizeof(SElemType)); if(!ST.elem) exit(0); ST.length=N; printf(\请输入无序表(共10个数据)\ for(int i=0;i