前言
首先对于数据结构
的重要性,想必已经不用多说了。在本篇文章开始之前,需要有C语言指针的基础,同时也要对结构体比较熟悉。那么本篇文章默认都有比较好的C语言基础,那么正文开始!
单链表查找操作
按位查找
按位查找就是给定查找的位置,获取该位置的值。
用 GetElem(LinkList L,int i) 进行封装:
LNode * GetElem(LinkList L,int i){
if(i<0) return NULL; // 如果给定的位置不合法 则返回空值NULL
LNode *p; // 定义一个p指针 用来表示当前的结点
int j = 0; // 定义变量j 用来表示当前为第几个结点
p = L; // 首先要将指针p指向链表头结点,而头结点代表0结点 j的值正好为0
// 接下来遍历此单链表
while(p!=NULL && j<i;{
p = p->next; // 指针p指向下一结点
j++; //表示的第几个结点 也加 1;
}
// 当遍历到i个位置 此时循环后 j 的值刚好指向第i个结点的位置 此时返回p指针即可
// 当i的位置超过了原本单链表的长度,那么循环过后 p指针的值则为 空值NULL
return p;
}
按值查找
按值查找就是给定值,返回该结点。
用 LocateElem(LinkList L,int e) 进行封装:
LNode * LocateElem(LinkList L,int e){
LNode *p = L->next; // 定义指针 p 指向第一个结点
// 遍历整个单链表
while(p!=NULL && p->data != e){
p = p->next; // 如果此时结点为空 或者 此时结点的数据域的值不与指定值相等,那么指向下一结点
}
return p; // 如果找到符合值的结点 那么直接返回该结点 反之 结点最后指向空值NULL
}
求单链表长度
Length(LinkList L):计算单链表中数据结点(不含头结点)的个数,需要从第一个结点看是顺序依次访问表中的每个结点。
int Length(LinkList L){
int len = 0; //定义变量 存放单链表长度,初始为0
LNode *p = L->next; // 定义指针 p 指向头指针下一结点 也就是 第一个结点
while(p->next != NULL){
p = p->next;
len++;
}
return len;
}
小结
本篇文章大概花了一小篇幅来讲解单链表的一些操作,紧接上文的一些操作,对于单链表的操作我们还是要熟练掌握的。
本节对于单链表的查找操作、以及求单链表长度作了一个详细的介绍,如果对于你有帮助,点个关注吧,我会持续更新!
♥♥♥