/*设顺序表中的关键字是递增有序的,将监视哨设在高下标端,设计算法实现简单顺序查找*/
#include “stdio.h”
#include “malloc.h”
#define LIST_SIZE 20
typedef struct{
charr[LIST_SIZE];
intlength; //length为表中元素的个数
}RecordList;
RecordList *SqLset(){ //建立顺序表
RecordList*L;
inti=0;char c;
L=(RecordList*)malloc(sizeof(RecordList));
scanf(“%c”,&c);//输入一个字符
L->length= 0;
while(c!=’#’){
L->r[i]=c;
L->length++;
i++;
if(L->length== LIST_SIZE-1) break;
scanf(“%c”,&c);
}
return(L);
}
int SequenSearch(RecordList *L,char k,intn){//实现在高下标端,简单顺序查找元素
inti=0,position=-1;//position为查找到的位置
L->r[n]=k;//最后一个单元作为监视哨
while(n!=i){
if(L->r[i]== k){
position= i+1;
break;
}
i++;
}
returnposition;
}
int main(){
RecordList*A;
intm;
charc;
printf(“请输入数据(字符类型)”);
A= SqLset();
printf(“请输入要查找的元素”);
c=getchar();//吃点回车符
scanf(“%c”,&c);
m= SequenSearch(A,c,A->length);
if(m== -1)
printf(“查找不成功!”);
else
printf(“m=%d,查找成功!”,m);
return0;
}
运行截图: