前言
我们已经学习过了单链表和双链表,这篇文章我们来讲解一下循环链表:
- 循环单链表
- 循环双链表
其实就是在单链表和双链表的基础上进行了一点小小的改进。
循环单链表
循环单链表,其实跟单链表之间的差别就是,最后一个结点的后继指针是指向了NULL还是指回了头结点:
- 单链表:后继指针指向NULL
- 循环单链表:后继指针指回头结点
下图就是两个列表的图
本质上循环单链表的结构体和单链表的结构体是一样的:
typedef struct LNode{
ELemType data; // 数据域
struct LNode *next; // 指针
}LNode, *LinkList;
循环单链表的初始化
在我们初始化单链表的时候,我们都知道会将头结点指向NULL,但是在初始化循环单链表时,我们需要将头结点的next指针指向头结点本身。
bool InitList(LinkList &am