带头结点的链表的按值查找和按位查找,代码展示如下
typedef struct LNode {
int data;
struct LNode *next;
}LNode,*LinkList;
//带头结点的链表的按位查找
LNode * GetElem(LinkList L,int i)
{
if(i < 0)
return false;
//如果i = 0 则返回头结点
int j = 0;
LNode *p ;
p = L;
while(p != NULL && j < i)
{
p = p->next;
j++;
}
//此时j = i 即找到
return p;
}
按值查找:
typedef struct LNode {
int data;
struct LNode *next;
}LNode,*LinkList;
//带头结点的链表的按值查找
LNode * GetElem2(LinkList L,int e)
{
LNode *p ;
p= L->next;//从第一个结点开始查找元素 因为头结点没有数据域
while(p != NULL && p->data != e)
{
p=p->next;
return p;//如果找不到就返回NULL
}
}