一.带头结点
1.查找
// 1.按位查找
int GetElem(LinkList L, int i)
{
//按位查找,找到第i个元素位置元素
if (L->next == NULL || i < 1)
return false;
//正常找
int j = 1;
while (j < i)
{
L = L->next;
j++;
}
return L->next->data;
}
//教科书按位查找,防止重名
LNode* GetElem1(LinkList L, int i)
{ //最后返回的是地址
if (i < 0)
return NULL;
LNode *p; //用于返回相关节点
int j = 0;
p = L->next; //我用的是指向首届点
while (p != NULL && j < i)
{
p = p->next;
j++;
}
return p;
}
//2.按值查找
LNode* LocateElem(LinkList L,int val){
LNode* p=L->next;//
while(p!=NULL&&p->data!=val){
p=p->next;
}
return p;
}
2.求长度
//求表的长度
int Length(LinkList L){
int len=0;
LNode *p=L->next;
while(p!=NULL){
len++;
p=p->next;
}
return len;
}
二.不带头结点
L指向首节点,对查找比较的初始位置上有区别