欢迎来到天天文库
浏览记录
ID:19951175
大小:66.50 KB
页数:3页
时间:2018-10-08
《数据结构实验3 顺序表的查找实验》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、一,实验题目顺序表的查找实验。设顺序表中的关键字是递增有序的,将监视哨设在高下标端设计算法实现简单顺序查找。二,问题分析本程序要求在递增有序的顺序表中查找某一元素,且要求将监视哨设置在高下标端。程序所能实现的是建立一个递增有序的顺序表,并能查找某一元素在顺序表中的位置。完成这些功能需要解决的关键问题是建立有序的顺序表,输入待查找的元素x,将x设为监视哨,并设置在顺序表的高下标端,最后输出x是否在顺序表中的信息,若在,则输出x在顺序表中的位置,若不在,则输出没有找到与x相同的元素。(1)数据的输入形式和输入值得范围:顺序表的元素都为递增有序的整型
2、元素。输入待查找的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:4
3、5有正有负,未能查找到三,概要设计(1)为了实现上述功能,需要:I)建立一个递增有序的顺序表LII)输入待查找的元素x,并将x设置为高下标端的监视哨。III)在顺序表中查找x元素是否存在,若不存在,则输出没有找到与x相同的元素。若存在,则输出x在顺序表中的位置。(2)本程序包含3个函数I)主函数:main()II)顺序表输入函数:recordlist*sqlset()III)在顺序表L中查找元素x函数:intseqsearch()个函数间关系如下:#include"stdio.h"#include"malloc.h"#definelist_si
4、ze50typedefstruct{intr[list_size+1];intlength;}recordlist;recordlist*sqlset()//顺序表输入函数{recordlist*L;inti;L=(recordlist*)malloc(sizeof(recordlist));L->length=-1;printf("请输入顺序表的长度i(i0){for(L->length=0;L->le
5、ngthlength++)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;//返回所
6、找到的与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);}
此文档下载收益归作者所有