单链表的查找
按位查找
GetElem(L,i)
:按位查找,获取表L中第i个位置的元素的值
LNode * GetElem(LinkLIst L,int i){
if(i<0)
return NULL;
LNode *p;//指针p指向当前扫描到的结点
int j=0;//当前p指向的是第几个结点
p=L;//L指向头结点,头结点是第0个结点(不存数据)
while(p!==NULL&&j<i){
//循环找到第i个结点
p=p->next;
j++;
}
return 0;
}
- i=0,此时j=0,直接跳过while循环,返回头结点
- i大于表的长度,直接跳过while循环,返回NULL
- 平均时间复杂度:O(n)
按值查找
LocateElem(L,e)
:按值查找,在表中查找具有给定关键字值的元素
//按值查找。找到数据域==e的结点
LNode *LocatrElem(LInkList L,ElemType e){
LNode *p=L->next