顺序查找(设置哨兵)
#include"stdio.h"
#define maxsize 100
#define typeo int
typedef struct
{
typeo key;
}link1;
typedef struct
{
link1 r[maxsize];
int len;
}link2;
int seq_search(typeo k,link2 st)
{
int j;
st.r[0].key=k;
j=st.len;
while(st.r[j].key!=k)
j--;
return j;
}
main()
{
link2 st;
typeo x;
int n,i;
st.len=0;
printf("请输入查找表的长度:\t");
scanf("%d",&n);
if(n>0)
{
printf("请输入%d个数据元素:\t",n);
for(i=1;i<=n;i++)
scanf("%d",&st.r[i].key);
st.len=n;
printf("请输入查找关键字:\t");
scanf("%d",&x);
if(seq_search(x,st)>0)
printf("%d在表中第%d位\n",x,seq_search(x,st));
else
printf("%d不在表中",x);
}
else
printf("表的长度不能小于0,请重新输入:\n");
}
#include"stdio.h"
#define maxsize 100
#define typeo int
typedef struct
{
typeo key;
}link1;
typedef struct
{
link1 r[maxsize];
int len;
}link2;
int seq_search(typeo k,link2 st,int n)
{
int j;
st.r[n].key=k;
j=0;
while(st.r[j].key!=k)
j++;
return j;
}
main()
{
link2 st;
typeo x;
int n,i;
st.len=0;
printf("请输入查找表的长度:\t");
scanf("%d",&n);
if(n>0)
{
printf("请输入%d个数据元素:\t",n);
for(i=0;i<n;i++)
scanf("%d",&st.r[i].key);
st.len=n;
printf("请输入查找关键字:\t");
scanf("%d",&x);
if(seq_search(x,st,n)<n)
printf("%d在表中第%d位\n",x,seq_search(x,st,n)+1);
else
printf("%d不在表中",x);
}
else
printf("表的长度不能小于0,请重新输入:\n");
}