数据结构实验3-顺序表的查找实验

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

一,实验题目顺序表的查找实验。设顺序表中的关键字是递增有序的,将监视哨设在高下标端设计算法实现简单顺序查找。二,问题分析本程序要求在递增有序的顺序表中查找某一元素,且要求将监视哨设置在高下标端。程序所能实现的是建立一个递增有序的顺序表,并能查找某一元素在顺序表中的位置。完成这些功能需要解决的关键问题是建立有序的顺序表,输入待查找的元素x,将x设为监视哨,并设置在顺序表的高下标端,最后输出x是否在顺序表中的信息,若在,则输出x在顺序表中的位置,若不在,则输出没有找到与x相同的元素。(1)数据的输入形式和输入值得范围:顺序表的元素都为递增有序的整型元素。输入待查找的x的值也为整型,查找结束后若找到,现实x在顺序表中的位置。(2)结果的输出形式:根据操作提示,先输入顺序表的元素个数i,在再输入i个递增有序的顺序表元素,之后输入待查找的元素x。输入完毕后,若查找到x,则输出x在顺序表中的位置,若未找到,则输出没有找到与x相同的元素。(3)测设数据:I),顺序表长度i:6,顺序表元素:-34-23-21-4-156x:-23有正有负,能查找到II),顺序表长度i:5,顺序表元素:4567697898x:69均为正数,能查找到III),顺序表长度i:6,顺序表元素:-34-34567879x:45有正有负,未能查找到三,概要设计(1)为了实现上述功能,需要:I)建立一个递增有序的顺序表LII)输入待查找的元素x,并将x设置为高下标端的监视哨。III)在顺序表中查找x元素是否存在,若不存在,则输出没有找到与x相同的元素。若存在,则输出x在顺序表中的位置。(2)本程序包含3个函数I)主函数:main()II)顺序表输入函数:recordlist*sqlset()III)在顺序表L中查找元素x函数:intseqsearch()个函数间关系如下:#includestdio.h#includemalloc.h#definelist_size50typedefstruct{intr[list_size+1];intlength;}recordlist;recordlist*sqlset()//顺序表输入函数{recordlist*L;inti;L=(recordlist*)malloc(sizeof(recordlist));L-length=-1;printf(请输入顺序表的长度i(ilist_size):);scanf(%d,&i);//输入表长printf(请输入%d个递增有序的顺序表元素:,i);if(i0){for(L-length=0;L-lengthi;L-length++)scanf(%d,&L-r[L-length]);}return(L);}intseqsearch(recordlist*L,intx,intm){//在长度为m的顺序表L中查找元素xinti=0,position=-1;//position用于记录查找到的位置L-r[m]=x;//将监视哨设置在高下标端while(m!=i){if(L-r[i]==x){position=i+1;//找到与x相同的元素时将x的位置给positionbreak;}i++;}returnposition;//返回所找到的与x相同的元素的位置}main(){intk,x;//k为要查找元素x在顺寻表中的位置recordlist*A;//定义一个recordlist型指针变量AA=sqlset();printf(请输入待查找的元素x:);scanf(%d,&x);k=seqsearch(A,x,A-length);//将查找到的x的位置赋值给kif(k==-1)printf(没有找到与%d相同的元素!,x);elseprintf(k=%d,查找成功!,k);}

1 / 3
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功