上一个说的是单链表,其实循环链表跟单链表类似,单链表最后一个节点(p)的next域为NULL即p->next=NULL而循环链表(plist)的则为头结点的地址,即p->next=plist。其余的基本操作和单链表几乎一样,仅仅是单链表循环结束条件为!=NULL,而循环链表是!=plist。
基本操作为:初始化,插入(头插、尾插),查找,删除,判空,求长,摧毁,逆置。
.cpp:
#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
#include "clist.h"
void InitList(CList plist)
{
assert(plist != NULL);
if(plist == NULL)
{
return ;
}
plist->next = plist;//循环链表
}
//头插
bool Insert_Head(CList plist,int val)
{
CNode *p = (CNode *)malloc(sizeof(CNode));
assert(p != NULL);//
p->data = val;
p->next = plist->next;//
plist->next = p;
return true;
}
//尾插
bool Insert_Tail(CList plist,int val)
{

本文介绍了循环链表的概念,它与单链表的区别在于最后一个节点指向头结点,而非NULL。循环链表的基本操作包括初始化、插入、查找、删除、判空、求长、摧毁和逆置。实现代码采用C++编写。
最低0.47元/天 解锁文章
2713

被折叠的 条评论
为什么被折叠?



