数据结构 查找 实验报告

时间:2025-12-02   来源:未知    
字号:

c语言 顺序查找 折半查找

数据结构实验报告课程院 姓 系 名

数据结构

_ 实验名称专业班级 学 号

查找实验地点 实验时间 批改日期

指导老师

实验成绩

一.实验目的1. 熟悉静态查找的相关算法

二.实验内容及要求1. 实现顺序表的查找算法 2. 实现有序表的折半查找算法

三. 实验过程及结果 实验过程: 源程序: 1、顺序查找: #include <stdio.h> #define MAX_SIZE 100

typedef struct{ int key; }element;

element list[MAX_SIZE]; int seqsearch(element list[],int searchnum,int num);

int main() { int i,num,searchnum,k;

c语言 顺序查找 折半查找

printf("请输入元素的个数:"); scanf("%d",&num); printf("请输入元素:\n"); for(i=0;i<num;i++) { scanf("%d",&list[i].key); } while(1) { printf("请输入要查询的数据元素:"); scanf("%d",&searchnum); k=seqsearch(list,searchnum,num); if(k!=-1) { printf("所查询元素的下标为:"); printf("%d\n",k);

} else printf("查询元素不存在。\n"); } return 0; }

int seqsearch(element list[],int searchnum,int num)

c语言 顺序查找 折半查找

{ int j; list[num].key=searchnum; for(j=0;list[j].key!=searchnum;j++) ; return j<num?j:-1; }

2、折半查找: #include <stdio.h> #define MAX_SIZE 100 #define COMPARE(a,b) (a)>(b)?1:(a)==(b)?0:-1 typedef struct{ int key; }element; element list[MAX_SIZE]; int binsearch(element list[],int searchnum,int num); int main() { int i,num,searchnum,k; printf("请输入元素的个数:"); scanf("%d",&num); printf("请输入元素:\n"); for(i=0;i<num;i++) { scanf("%d",&list[i].key); } while(1) { printf("请输入要查询的数据元素:"); scanf("%d",&searchnum); k=binsearch(list,searchnum,num); if(k!=-1) { printf("所查询元素的下标为:"); printf("%d\n",k); } else printf("查询元素不存在。\n"); } return 0; } int binsearch(element list[],int searchnum,int num) { int left=0,right=num-1,middle; while(left<=right) { middle=(left+right)/2;

c语言 顺序查找 折半查找

switch(COMPARE(list[middle].key,searchnum)) { case 1:right=middle-1;break; case 0:return middle; case -1:left=middle+1; } } return -1; } 实验结果:

四.实验中的问题及心得通过本次实验,加深了我对查找表的认识。但是,实验中也出现了问题,程序 循环不能良好退出。希望经过以后的学习我能解决这些问题。

数据结构 查找 实验报告.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
    × 游客快捷下载通道(下载后可以自由复制和排版)
    VIP包月下载
    特价:29 元/月 原价:99元
    低至 0.3 元/份 每月下载150
    全站内容免费自由复制
    VIP包月下载
    特价:29 元/月 原价:99元
    低至 0.3 元/份 每月下载150
    全站内容免费自由复制
    注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
    × 常见问题(客服时间:周一到周五 9:30-18:00)