资源描述
一,实验题目顺序表的查找实验。设顺序表中的关键字是递增冇序的,将监视哨设在高I、标端设计算法实现简单顺序查找。 二,问题分析本程序要求在递增有序的顺序表中查找某一元素,且要求将监视哨设置在高下标端。程 序所能实现的是建立一个递增有序的顺序表,并能查找某一元素在顺序表中的位置。完成这 些功能需要解决的关键问题是建立有序的顺序表,输入待查找的元素X,将X设为监视哨, 并设置在顺序表的高卞标端,最后输出X是否在顺序表中的信息,若在,则输出X在顺序表 中的位置,若不在,则输出没有找到与X相同的元素。(1)数据的输入形式和输入值得范闱:顺序表的元素都为递增有序的整型元素。输入 待查找的X的值也为整型,查找结束后若找到,现实X在顺序表中的位置。(2)结果的输出形式:根据操作提示,先输入顺序表的元素个数1,在再输入1个递增 有序的顺序表元素,之后输入待查找的元素X。输入完毕后,若查找到X,则输出X在顺序 表中的位置,若未找到,则输出没有找到与X相同的元素。(3)测设数据:I),顺序表长度i: 6,顺序表元素:-34-23 -21 4-156 X: -23有正有负,能查找到II),顺序表长度i: 5,顺序表元素:45 67 69 78 98 X: 69均为正数,能查找到1口),顺序表长度i: 6,顺序表元素:-34 -3 4 56 78 79 x: 45有正有负,未能查找到三,概要设计(1)为了实现上述功能,需要:I)建立一个递增有序的顺序表LII)输入待查找的元素x,并将x设置为高下标端的监视哨。III)在顺序表中查找x元素是否存在,若不存在,则输出没有找到与x相同的元素。若存在, 则输出x在顺序表中的位置。(2)本程序包含3个函数I)主函数:main()II)顺序表输入函数:recoidlist *sqlset()III)在顺序表L中查找元素x函数:int seqseaich()个函数间关系如下:#iiiclude stdio.h#include malloc.hdefine list size 50 tvpedef stmctint rlist_size+l;int length;Jrecordlist;recordlist *sqlset()顺序表输入函数recordlist *L;int i;L=(recordlist*)nialloc(sizeof(iecoidlist);L-length=-l;pnntfC请输入顺序表的长度i(ilength=0;L-lengthlength+)scaiif(M%d,&L-iL-length);return (L);iiit seqseaich(recordlist x,int m)在长度为 m 的顺序表 L 中查找元素 xint i=0,positional;/position用于记录査找到的位置L-im=x; 将监视哨设置在高下标端while(m!=i)if(L-ri=x) position=i+1;/找到与x相同的元素时将x的位置给positionbreak;retiunposition;返回所找到的与x相同的元素的位置ma in() int k.x; /k为要查找元素x在顺寻表中的位置lecoidlist *A; 定义一个 recordlist 型指针变量 AA=sqlset();pnntf(”请输入待查找的元素x:”);scanf(”d”.&x);k=seqsearch(A,xA-length);将查找到的x的位置赋值给kif(k=-l)pnntf(”没有找到与d相同的元素!”刃;elsepnntf(”k=%d,查找成功! ”,k);入入入查 揪2, 主垦冃青k=JI吸衣的枚度ii : 66个递増有序的顺序表元素:-34 -23 -21 -4 -1 56 元素 x = -23找成功?Puess any key to continueuui 3 -主冃主冃= Ik、Ik、Tk u八顺序表的长度ii:5呼耒元素67 69杳找成功?Puess any key to continue78 98p i顷45素 航X:元 、萌 找45 查与 待到 入入入找siz素: 1 予4 56 78 79 to continue
展开阅读全文