数据结构 查找 实验报告

时间: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文档下载到电脑

    精彩图片

    热门精选

    大家正在看

    × 游客快捷下载通道(下载后可以自由复制和排版)

    限时特价:7 元/份 原价:20元

    支付方式:

    开通VIP包月会员 特价:29元/月

    注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
    微信:fanwen365 QQ:370150219