一、按位查找,返回第i个元素(带头结点)
LNode * GetElem(Linklist L,int i){
if(i<0)
return NULL;
LNode *p;
int j=0;
p=L;
while(p!=NULL&&j<i){ //循环找到第i个结点
p=p->next;
j++;
}
return p;
}
二、按值查找
LNode * LocateElem(Linklist L,ElemType e){
LNode *p=L->next;
while(p!=NULL&&p->data!=e){ //此处并不是针对struct设计代码,而是针对int等类型
p=p->next;
}
return p;
}
三、求表的长度
int Length(Linklist L){
int len=0;
LNode *p=L;
while(p->next!=NULL){
p=p->next;
len++;
}
return len;
}
三个操作的时间复杂度均为0(N),单链表不具有随机访问性,只能依次扫描