数据结构学习:单链表的查找以及求表长
单链表的查找
GetElem(L,i):按位查找操作。获取表L中第i个位置的元素的值。
LocateElem(L,e):按值查找操作。在表L中查找具有给定关键字值的元素。
定义一个链表
struct LNode{ //定义单链表结点类型
ElemType data; //结点的数据域,用来存放数据
struct LNode *next;//指针域,存放指向下一个结点的指针
}LNode *LinkList;
按位查找
LNode *GetElem(LinkList L,int i)//在链表L中查找第i个结点
{
if(i<0)
return NULL;
LNode *p; //定义一个指针p
int j = 0; //用来标注当前指针p指向的第几个结点
p = L; //L指向头指针,头指针是第0个结点,将p指向头结点
while(p != NULL && j<i) //通过循环来找到第i个结点
{
p = p->next;
j++;
}
return p;
}
按值查找
LNode * LocateElem(LinkList L,ElemType e)//在链表L中查找第i个结点
{
LNode *p = L->next; //定义一个指针p指向头结点
while(p != NULL && p->data != e) //通过循环来找到第i个结点
{
p = p->next;
}
return p;//找到后返回改结点,否则则返回NULL
}
求单链表的表长
int Length(LinkList L)//求表长
{
int len = 0;//定义一个变量来记录表长
LNode *p = L ;
while(p->next != NULL)
{
p = p->next;
len++;
}
return len;//返回表长
}
本文详细介绍了如何在单链表中进行按位查找(GetElem)和按值查找(LocateElem),以及如何使用递归实现链表的表长计算(Length)。通过实例演示了查找特定元素和计算链表长度的方法,适合初学者理解链表核心操作。
1252

被折叠的 条评论
为什么被折叠?



