数据结构与算法 ~ 查找 ~ 顺序查找
/*search--seqlistsearch*/
#include<stdio.h>
#include<stdlib.h>
int seqlistsearch(int *list,int len,int key){
int i,j;
list[0]=key;
i=len;
while(key!=list[i]){
printf("\n当前查找==:");
for(j=1;j<=len;j++){
printf("%3d",list[j]);
if (j==(i-1))
printf("(");
if (j==i)
printf(")");
}
--i;
}/*while*/
return i;
}/* seqlistsearch*/
int main( ){
int list[20];
int len,key,e;
int node,i=0;
list[i]=0;
printf ("\n请输入数值 (Exit for 0):");
scanf("%d,",&node);
while(node!=0&&i<20){
list[++i]=node;
printf ("\n请输入数值 (Exit for 0):");
scanf("%d,",&node);
}/*while*/
len=i;
printf ("\n初始 :");
for (i=1;i<=len;++i) printf(" %3d,",list[i]);
printf(" \nlen=%d",len);
printf ("\n请输入你想查找的数值(Exit for 0):\n");
scanf("%d",&key);
while(key!=0){
e=seqlistsearch(list,len,key);
printf("\n你想查找的数值是:%d, 位置在:%d .",list[e],e);
printf ("\n请输入你想查找的数值(Exit for 0):\n");
scanf("%d",&key);
}/*while*/
system("pause");
exit(0);
}/*main*/
运行结果:
请输入数值 (Exit for 0):5
请输入数值 (Exit for 0):13
请输入数值 (Exit for 0):19
请输入数值 (Exit for 0):21
请输入数值 (Exit for 0):37
请输入数值 (Exit for 0):56
请输入数值 (Exit for 0):64
请输入数值 (Exit for 0):75
请输入数值 (Exit for 0):80
请输入数值 (Exit for 0):88
请输入数值 (Exit for 0):92
请输入数值 (Exit for 0):0
初始 : 5, 13, 19, 21, 37, 56, 64, 75, 80, 88, 92,
len=11
请输入你想查找的数值(Exit for 0):
13
当前查找==: 5 13 19 21 37 56 64 75 80 88( 92)
当前查找==: 5 13 19 21 37 56 64 75 80( 88) 92
当前查找==: 5 13 19 21 37 56 64 75( 80) 88 92
当前查找==: 5 13 19 21 37 56 64( 75) 80 88 92
当前查找==: 5 13 19 21 37 56( 64) 75 80 88 92
当前查找==: 5 13 19 21 37( 56) 64 75 80 88 92
当前查找==: 5 13 19 21( 37) 56 64 75 80 88 92
当前查找==: 5 13 19( 21) 37 56 64 75 80 88 92
当前查找==: 5 13( 19) 21 37 56 64 75 80 88 92
你想查找的数值是:13, 位置在:2 .
请输入你想查找的数值(Exit for 0):
80
当前查找==: 5 13 19 21 37 56 64 75 80 88( 92)
当前查找==: 5 13 19 21 37 56 64 75 80( 88) 92
你想查找的数值是:80, 位置在:9 .
请输入你想查找的数值(Exit for 0):