第1关:链表的实现之查找功能
任务描述
本关任务:实现链表的查找功能。
相关知识
为了完成本关任务,你需要掌握:1. 链接存储,2.链表涉及的主要操作。
链接存储
线性表的存储也可以采用链接存储方式来实现。链接存储方式包括单链表、双链表和循环链表等形式。
下面描述了一种基于单链表的线性表实现方案:
为了讨论简单,假设数据元素的类型为整数:
typedef int ElemType;
在链表中,每个数据元素为一个链表结点,结点的具体定义为:
typedef struct LNode{
ElemType data; //数据域
struct LNode *next; //指针域
}LNode,*LinkList; // LinkList为指向结构体LNode的指针类型
若定义:LinkList L;
结合上面单链表的示意图,可知:L指向了一个单链表。我们把L称为头指针,L所指结点称为头结点,L->next所指结点为第一个元素结点。通过头指针L就可以对单链表进行操作。
链表涉及的主要操作
主要操作如下:
链表的初始化:构造一个带头结点的空的单链表。具体操作函数定义如下:
void LL_Initiate(LinkList &L)
释放链表:释放链表中各个结点。具体操作函数定义如下:
void LL_Free(LinkList &L)
判断链表是否为空: 若为空表,则返回true,否则返回false。具体操作函数定义如下: