#数据#在文章中,作者介绍了如何对一个线性表链表进行插入和删除操作。
在本篇文章中,作者将介绍如何在线性链表中进行查找操作,以及如何算出一个线性链表的长度。
线性链表的查找操作主要分为两种——按位查找和按值查找,接下来我们就来依次对它们进行了解。
一,按位查找:
按位查找是指要查找第i个位序的元素。它的实现其实非常简单,只需要把上篇文章中的按位插入操作略微改动即可,以下是实现c++代码:
Node*GetElem(LinkListl,inti){
if(i0){
returnNULL;
//TODO
}//如果i0,则代表i的值不合法,返回空
Node*p=l;//将p指向链表的头结点
intj=0;
while(p!=NULLji){
p=p-next;
j++; //TODO
}//如果p指针没有指向空(这意味着输入的i值没有大于链表的长度),同时ji(限定链表的长度)
returnp;//查找完毕后返回p指针
}
二,按值查找:
按值查找是指要查找值为e的元素,以下是代码实现:
Node*LocateElem(LinkListl,inte){
Node*p=l-next;//将p指向第一个有元素的结点
while(p!=NULLp-data!=e){
p=p-next;
//TODO
}//如果p不为空同时元素不匹配,则后移元素
returnp;//找到p后返回
}
本篇文章到此就结束了,如果大家有什么建议,问题,欢迎在下方的评论区给作者留言。