6-4 查找元素(*)添加链接描述
已知顺序表的结构定义如下:
typedef struct
{
int size, length;
int *element;
} ALIST;
说明:element 为存储数据元素的动态数组的起始地址,size 为动态数组的尺寸,length 为顺序表的长度。
请编写函数,在顺序表中查找数据元素。
函数原型
int AListFind(const ALIST *list, int element);
说明:参数 list 为指示线性表(顺序表)的指针,element 为待查找的数据元素。函数在 list 所指线性表中查找首个与 element 所指数据元素相同的数据元素,若查找成功,则函数值为线性表中找到的首个匹配的数据元素的位序,否则为0。
裁判程序
int main()
{
int i;
int x;
ALIST a;
AListCreate(&a);
AListInput(&a);
scanf("%d", &x);
i = AListFind(&a, &x);
printf("%d\n", i);
AListDestroy(&a);
return 0;
}
说明:AListCreate 函数创建顺序表,AListInput 函数输入顺序表,AListDestroy 函数销毁顺序表。
输入样例1
( 25, 36, 49, 64, 12, 58, 49, 81 )
49
输出样例1
3
输入样例2
( 25, 36, 49, 64, 12, 58, 49, 81 )
54
输出样例2
0
int AListFind(const ALIST *list, int element)
{
int i;
for (i=0;i<list->length;i++){
if(list->element[i]==element){
return i+1;
}
}
return 0;
}