数据结构C语言版问题

来源:百度知道 编辑:UC知道 时间:2024/05/17 01:39:42
int locate(struct sList * p,Elem Type x)
{ int i=0;
while(i<p->size&& p->list[i]!=x) i++;
if(i==p->size)
return(-1)
else
return(i+1);
}
请教下这段代码里面(i<p->size&& p->list[i]!=x)是什么意思,这段代码表达的意思是?

i<p->size&& p->list[i]!=x
的意思同一楼.
struct sList * p 这个语句定义了P是指向一个链表的指针
Elem Type x X是未定义类型的参数
p->size 应该是链表的长度
i<p->size 用来判断i是否超出链表
p->list[i] 是P所指向的链表的第i个结点
p->list[i]!=x 判断X与链表的第i个结点是否相等
这个算法应该是在一个指针指向的链表中查找X

查找p->list中值为x的元素。

结合后面的代码,该函数返回:
如果在p->list中找到数值等于x的元素,则返回其位置。
没有找到,返回-1

(i<p->size&& p->list[i]!=x)
i小于p->size同时p->list[i]不等于x 就执行下面的循环体。