循环链表的创建其实并不复杂,只需要在创建单链表时定义一个节点(本文章中为s)参与循环找到尾节点然后让其指向头节点的下一个(因为第一个节点时没有值的),在之后的遍历中则需要使用do while循环因为跳跃了第一个节点在我们遍历时新的第一个节点是有值的,之后的插入删除查找操作,则是在原文的基础上删除了循环中超越元素值的条件,举例:现有四个元素:1 2 3 4,删除第7个元素后:1 2 4.
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
typedef struct LNode {
int data;
struct LNode *next;
}LNode, *LinkList;
int CreatList(LinkList L) {
//创建链表
int n;
scanf("%d", &n);
L->next = NULL;
LNode * p;
LNode * s;
s = (LinkList)malloc(sizeof(LNode));
s = L;
for (int i = 0; i < n; i++