数据结构学习:单链表的查找以及求表长

本文详细介绍了如何在单链表中进行按位查找(GetElem)和按值查找(LocateElem),以及如何使用递归实现链表的表长计算(Length)。通过实例演示了查找特定元素和计算链表长度的方法,适合初学者理解链表核心操作。
摘要由CSDN通过智能技术生成

数据结构学习:单链表的查找以及求表长

单链表的查找
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;//返回表长
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小二康

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值