永发信息网

C++、数据结构高手快速地进入.....(关于简单顺序查找的监视哨问题)

答案:2  悬赏:0  手机版
解决时间 2021-03-07 15:26
题目是这样的:设顺序表中的关键字是递增有序的,将监视哨设在高下标端,设计算法设计实现简单顺序查找
下面是我的算法:
#include"stdio.h"
#include"malloc.h"
#define maxlen 50
typedef struct
{int data[maxlen];
int length;
}RecordList;
RecordList *SqLset(){
RecordList *L;
int i=0,c;
L=(RecordList *)malloc(sizeof(RecordList));
scanf("%d",&c);
L->length=0;
while(c!=0){ //'0'为输入结束标志
L->data[i]=c;
L->length++;
i++;
scanf("%d",&c);
}
return L;
}
int Search(RecordList *L)
{int i=0,m,x,position=0;
printf("请输入你需要查找的数值:");
scanf("%d",&x);
m=L->length;
//L->data[m]=x;
while(m!=i){
if(L->data[i]==x){
position=i+1;
break;}
i++;}
return position;

}

void main()
{int i;
RecordList *A;
A=SqLset();
for(i=0;i<=A->length-1;i++)
printf("%d ",A->data[i]);
printf("\n%d\n",A->length);
printf("%d",Search(A));

}
算法本身并无任何问题,可以运行实现,可是我这个监视哨貌似可有可无,根本没用处的。所以,想请教下高手指导下,是不是需要改进一下什么的,或者重新设计一个新的算法。呵呵,小弟感谢万分
最佳答案
监视哨即所查值,应该放在下标为0端,查找从高端开始。如果存在所查值,返回position,如果没有查找的值,则返回position=0,表示查找失败。
监视哨免去了查找过程中每一次比较都要判断查找位置是否越界,提高查找速度。
全部回答
搜一下:C++、数据结构高手快速地进入.....(关于简单顺序查找的监视哨问题)
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
我的世界刚刚开始怎么玩?什么都没有 ?怎么
【凤仙花观察日记】科学观察日记(凤仙花)
豆花印湘潭店怎么去啊,有知道地址的么
空间说说的可见范围设置了指定人之后,被指定
对比Java中if和switch选择结构二者的区别
电脑硬盘哪个牌子的好点
广州火车南站有到湖北宜昌的车吗?
艾福特洗衣连锁地址在什么地方,想过去办事
百度贴吧上的内容真实度高吗
大佛顶首楞严经讲记卷二 例汝今日、以目观见
【SCSI接口】CD-ROM驱动器的接口标准有()。(1
FREE BEAUTY在哪里啊,我有事要去这个地方
qq炫舞仙露许愿池为啥都是10次
食品添加剂常用的都有什么啊?具体的用途和作
求sho迅雷资源
推荐资讯
文光佛品服务部在什么地方啊,我要过去处理事
我是个男的,25岁,做心电图,医生说我心律太快
纠结的两个名字,王腾霄与王润泽,孩子是农历
读图,回答下列题【小题1】南半球昼长夜短的
在叶绿体色素的提取和分离实验中,扩散速度最
分手之后前女友把我所有联系方式都删了
PSV三国无双7,猛将传为什么没诱雷技能?
属猴的人跟属龙的人结婚了,婚姻会幸福吗,感情
转发新浪新闻算不算侵权
培优班补习班用英语怎么说
在深圳要EMS进口报关怎么办
360帐号被解绑盗掉后又被别人绑定了,要怎么
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?