1.顺序表的查找:
2.单链表的查找:
3.双链表的查找:
int LocateElem(SqList *L, ElemType e) //按元素值查找
{
int i = 0;
while (i < L -> length && L -> data[i] != e)
i++; //遍历查找元素e
if (i >= L ->length) //未找到时返回0
return 0;
else
return i+1; //找到后返回其逻辑序号
}
2.单链表的查找:
int LocateElem(LinkList *L, ElemType e) //按元素值查找
{
int i = 1;
LinkList *p = L -> next; //p指向开始节点,i置为1(即开始节点的序号为1)
while (p != NULL && p -> data != e) //查找data值为e的节点,其序号为i
{
p = p -> next;
i++;
}
if (p == NULL) //不存在元素值为e的节点,返回0
return(0);
else //存在元素值为e的节点,返回其逻辑序号i
return(i);
}
3.双链表的查找:
int LocateElem(DLinkList *L, ElemType e) //按元素值查找
{
int n = 1;
DLinkList *p=L -> next;
while (p != NULL && p -> data != e)
{
n++;
p = p -> next;
}
if (p == NULL)
return(0);
else
return(n);
}