单向循环链表

创建单向循环链表

cs 复制代码
linklist create_h(){
	linklist p=(linklist)malloc(sizeof(struct Node));
	if(p==NULL)return NULL;
	p->len=0;
	p->next=p;//开始就让头节点指向自身
	return p;
}

创建节点

cs 复制代码
linklist create(){
	linklist p=(linklist)malloc(sizeof(struct Node));
	if(p==NULL)return NULL;
	p->data=0;
	p->next=NULL;
	return p;
}

头插

cs 复制代码
int insert_head(linklist p,datatype data){
	if(p==NULL)return -1;
	linklist q=create();
	if(q==NULL)return -1;
	q->next=p->next;//若是第一个元素,则q指向头节点完成循环
	p->next=q;
	q->data=data;
	p->len++;
	return 0;
}

按位置插入

cs 复制代码
int insert_index(linklist p,int index,datatype key){
	if(p==NULL||index>p->len+1||index<1){
		return -1;
	}
	linklist q=p;
	for(int i=0;i<p->len-1;i++){
		q=q->next;
	}
	linklist k=create();
	if(k==NULL)return -1;
	k->data=key;
	k->next=q->next;
	q->next=k;
	p->len++;
	return 0;
}

尾删

cs 复制代码
int dele_rear(linklist p){
	if(p==NULL||p->len==0)return -1;
	linklist q=p;
	for(int i=0;i<p->len-1;i++)
		q=q->next;
	q->next=mfree(q->next);
    q->next=p;
	p->len--;
	return 0;
}

输出

cs 复制代码
int output(linklist p){
	puts("");
	if(p==NULL||p->len==0)return -1;
	linklist q=p;
	for(int i=0;i<p->len;i++){
		q=q->next;
		printf("%d\t",q->data);
	}
	putchar(10);
	return 0;
}

按位置删

cs 复制代码
int dele_index(linklist p,int index){
	if(p==NULL||index>p->len||index<1)return -1;
	linklist q=p;
	for(int i=0;i<index-1;i++){
		q=q->next;
	}
	linklist k=q->next;
	q->next=k->next;
	k=mfree(k);
	p->len--;
	return 0;
}
相关推荐
hold?fish:palm4 分钟前
24 回文链表
数据结构·c++·链表
库玛西3 小时前
现代 C++ 智能指针全景指南:从 RAII 思想到工业级实践
c语言·开发语言·c++·笔记·面试
AC赳赳老秦3 小时前
风控岗应用:OpenClaw 采集公开司法与经营异常数据,自动生成企业风险评估报告
大数据·c语言·数据库·人工智能·python·php·openclaw
qeen874 小时前
【数据结构】自平衡二叉搜索树各种旋转算法原理解析及AVL树的C++实现
数据结构·c++·算法
程序员与背包客_CoderZ5 小时前
Linux D-Bus通信协议详解:从入门到C/C++编码实战
linux·服务器·c语言·c++·嵌入式硬件·嵌入式软件·dbus
冻柠檬飞冰走茶5 小时前
PTA基础编程题目集 7-35有理数均值(C++语言实现)
开发语言·数据结构·c++·算法·均值算法
嵌入式阿蔡6 小时前
HAL库 vs LL库 vs 寄存器:到底用哪个?
c语言·stm32·单片机·嵌入式硬件·嵌入式实时数据库
Yyyyyy~6 小时前
【C】C语言常见概念
c语言
Nil2086 小时前
leetcode 189轮转数组
数据结构·算法·leetcode
嵌入式阿蔡7 小时前
CAN总线入门:从协议帧到STM32实战
c语言·stm32·单片机·嵌入式硬件·嵌入式实时数据库