一、循环链表的定义
将单链表中终端结点的指针端由空指针改为指向头结点,就使整个单链表形成一个环,这种头尾相接的单链表称为单循环链表,简称循环链表
二、带头结点的循环链表的判空条件
p->next 不等于头结点
在设计循环单链表时,仅设计指向终端结点的尾指针可以提高效率,此时查找开始结点和终端结点就很方便了,下面以此来实现循环单链表
三、循环单链表的基本操作
1.循环单链表的整表创建
typedef int ElemType;
typedef struct Node
{
ElemType data;
struct Node* next;
}Node, * LinkList;
void CreateCycleList(LinkList* rear,int n)
{
int data;
LinkList p,head;
(*rear) = (LinkList)malloc(sizeof(Node)); //创建头结点
head = (*rear); //记录下头结点的位置
(*rear)->next = head; //初始化头结点的后继结点指向自己
for(int i=0;i<n;i++)
{
scanf("%d",&data);</