考研C++/C数据结构之单链表两种查找方法

继上篇文章我们探讨了单链表的两种创建方法(头插法和尾插法),今天我们来学习一下单链表的两种查找方法--按序查找和按值查找。

按序查找的代码实现如下:

//按位查找
LinkList GetElem(LinkList L, int i)
{
	int j = 1;
	LinkList p = L->next;//让p指向第一个节点
	if (0 == i)
	{
		return L;//i是0返回头节点
	}
	if (i < 1)
	{
		return NULL;//i是负值返回空
	}
	while (p&&jnext;
		j++;
	}
	return p;
}

这里使用的是while循环循环遍历查找,实现起来方便简单。时间复杂度为O(n)。

下面是按值查找的代码实现:

/按值查找
LinkList LocateElem(LinkList L, ElemType e)
{
	LinkList p = L->next;
	while (p != NULL && p->data != e)
	{
		p = p->next;
	}
	return p;
}

同样,实现也是简单快捷,时间复杂度也为O(n)。

你可能感兴趣的:(后端,c语言,vscode,数据结构)