2024.3.15

1.单向循环链表

代码:

#include"loop.h"
//创建单向循环链表
loop_p create_loop_list()
{loop_p H = (loop_p)malloc(sizeof(loop));if(H==NULL){printf("空间申请失败\n");return NULL;}H->len=0;H->next=H;return H;
}
//创建节点
loop_p create_loop(datatype data)
{loop_p new = (loop_p)malloc(sizeof(loop));if(new==NULL){printf("空间申请失败\n");return NULL;}new->data=data;return new;
}
//判空
int empyt_loop(loop_p H)
{if(H==NULL){printf("入参为空,请检查\n");return -1;}return H->next==H?1:0;
}
//输出
void show_loop(loop_p H)
{if(H==NULL){printf("入参为空,请检查\n");return;}if(empyt_loop(H)){printf("链表为空\n");return;}loop_p p = H->next;while(p!=H){printf("%d->",p->data);p=p->next;}printf("NULL\n");
}
//头插
void insert_head(loop_p H,datatype data)
{if(H==NULL){printf("入参为空,请检查\n");return;}loop_p new = create_loop(data);new->next=H->next;H->next=new;H->len++;
}
//头删
void dele_head(loop_p H)
{if(H==NULL){printf("入参为空,请检查\n");return;}if(empyt_loop(H)){printf("链表为空,无需删除\n");return;}loop_p del = H->next;H->next = del->next;free(del);H->len--;
}
//尾插
void insert_tail(loop_p H,datatype data)
{if(H==NULL){printf("入参为空,请检查\n");return;}loop_p p = H->next;while(p->next!=H){p=p->next;}loop_p new = create_loop(data);new->next=p->next;p->next=new;H->len++;
}
//尾删
void dele_tail(loop_p H)
{if(H==NULL){printf("入参为空,请检查\n");return;}if(empyt_loop(H)){printf("链表为空,无需删除\n");return;}loop_p p = H;while(p->next->next!=H){p=p->next;}loop_p del = p->next;p->next H;free(del);H->len--;
}
//按位置插入
void insert_pos(loop_p H,datatype data,int pos)
{if(H==NULL){printf("入参为空,请检查\n");return;}if(pos<1||pos>H->len+1){printf("位置不合理\n");return;}loop_p p = H->next;loop_p new = create_loop(data);for(int i=1;i<pos-1;i++){p=p->next;}new->next = p->next;p->next = new;H->len++;
}
//按位置删除
void dele_pos(loop_p H,int pos)
{if(H==NULL){printf("入参为空,请检查\n");return;}if(empyt_loop(H)){printf("链表为空,无需删除\n");return;}if(pos<1||pos>H->len){printf("位置不合理\n");return;}loop_p p = H->next;for(int i=1;i<pos;i++){p=p->next;}loop_p del = p->next;p->next = del->next;free(del);H->len--;
}
//删除单向循环列表的头结点
void dele_head_loop(loop_p H)
{if(H==NULL){printf("入参为空,请检查\n");return;}loop_p p = H->next;while(p->next!=H){p=p->next;}p->next=H->next;free(H);return p->next;
}
//打印输出没有头的单向循环链表
void show_nohead_loop(loop_p fir)
{if(fir==NULL){printf("入参为空,请检查\n");return;}loop_p p = fir;do{	printf("%d->",p->data);p=p->next;}while(p!=fir);}

2.双向链表

代码:

#include"double.h"
//创建双向链表
double_p create_double()
{double_p H = (double_p)malloc(sizeof(node));if(H==NULL){printf("空间申请失败\n");return NULL;}H->len = 0;H->pri = NULL;H->next = NULL;return H;
}
//创建节点
double_p create_node(datatype data)
{double_p new = (double_p)malloc(sizeof(node));if(H==NULL){printf("空间申请失败\n");return NULL;}new->data = data;return new;
}
//头插
void insert_head(double_p H,datatype data)
{if(H==NULL){printf("入参为空,请检查\n");return;}double_p new = create_node(data);new->next = H->next;if(H->next!=NULL){H->next->pri = new;}H->next = new;new->pri = H;H->len++;
}
//判空
int empty_double(double_p H)
{if(H==NULL){printf("入参为空,请检查\n");return -1;}return H->next==NULL?1:0;
}
//输出
void show_double(double_p H)
{if(H==NULL){printf("入参为空,请检查\n");return;}if(empty_double(H)){printf("链表为空\n");return;}double_p p = H->next;while(p!=NULL){printf("%d->",p->data);p=p->next;}printf("NULL\n");
}
//头删
void dele_head(double_p H)
{if(H==NULL){printf("入参为空,请检查\n");return;}if(empty_double(H)){printf("链表为空,无需删除\n");return;}double_p del = H->next;H->next = del->next;del->next->pri = H;free(del);H->len--;
}
//尾插
void insert_tail(double_p H,datatype data)
{if(H==NULL){printf("入参为空,请检查\n");return;}double_p new = create_node(data);double_p p = H;while(p->next!=NULL){p=p->next;}p->next = new;new->pri = p;new->next = NULL;H->len++;
}
//按位置插入*
void insert_pos(double_p H,datatype data,int pos)
{if(H==NULL){printf("入参为空,请检查\n");return;}double_p new = create_node(data);double_p p = H->next;for(int i=0;i<pos-1;i++){p=p->next;}new->next = p->next;if(p->next!=NULL){p->next->pri=new;}p->next=new;new->pri=p;H->len++;
}
//按位置删除
void dele_pos(double_p H,int pos)
{if(H==NULL){printf("入参为空,请检查\n");return;}if(empty_double(H)){printf("链表为空,无需删除\n");return;}if(pos<0||pos>H->len){printf("位置不合理\n");return;}double_p p = H->next;for(int i=1;i<pos-1;i++){p=p->next;}double_p del = p->next;p->next = del->next;del->next->pri = p;free(del);H->len--;}

结果:

3.思维导图

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/751738.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【C语言】打印用*组成的X形图案

代码如下&#xff1a; #include<stdio.h> int main() { int n 0; int i 0; int j 0; while (scanf("%d", &n) ! EOF) for (i 0; i < n; i) { for (j 0; j < n; j) { if (…

拼多多根据关键词取商品列表 API 返回值说明

一、应用场景 拼多多根据关键词取商品列表的API应用场景非常广泛&#xff0c;主要集中在电商领域&#xff0c;包括但不限于以下几个方面&#xff1a; 1、商品搜索与推荐&#xff1a;商家可以通过API接口&#xff0c;根据用户输入的关键词&#xff0c;实时获取拼多多平台上的相…

什么是布隆过滤器?

1、什么是布隆过滤器 ​ 布隆过滤器&#xff08;Bloom Filter&#xff09;是1970年由布隆提出的。它实际上是一个很长的二进制向量和一系列随机映射函数。布隆过滤器可以用于检索一个元素是否在一个集合中。它的优点是空间效率和查询时间都比一般的算法要好的多&#xff0c;缺…

Java习题中 哈希表的理论 有效的字母异位词 快乐数 两数之和

关于 哈希表的理论 今天最大的疑惑好像就是map的复杂度怎么算哈哈,一般n个元素map的复杂度就是On哦,不需要想得太复杂了,冲突的空间并不会造成一个量级,改变n前面的常数不会影响空间复杂度哈提醒&#xff01;熟悉好map,set的API哦 关于 有效的字母异位词 为什么遍历第二个字符…

小白必看的Python基础之函数篇

函数最重要的目的是方便我们重复使用相同的一段程序。 将一些操作隶属于一个函数&#xff0c;以后你想实现相同的操作的时候&#xff0c;只用调用函数名就可以&#xff0c;而不需要重复敲所有的语句。 函数的定义 首先&#xff0c;我们要定义一个函数, 以说明这个函数的功能…

BufferedOutputStream类讲解

咦咦咦&#xff0c;各位小可爱&#xff0c;我是你们的好伙伴——bug菌&#xff0c;今天又来给大家普及Java IO相关知识点了&#xff0c;别躲起来啊&#xff0c;听我讲干货还不快点赞&#xff0c;赞多了我就有动力讲得更嗨啦&#xff01;所以呀&#xff0c;养成先点赞后阅读的好…

代码学习记录21--回溯算法第二天

随想录日记part21 t i m e &#xff1a; time&#xff1a; time&#xff1a; 2024.03.16 主要内容&#xff1a;今天主要是结合类型的题目加深对回溯算法的理解&#xff1a;1&#xff1a;组合总和&#xff1b;2&#xff1a;电话号码的字母组合 216.组合总和III17.电话号码的字母…

【Redis知识点总结】(五)——Redis实现分布式锁

Redis知识点总结&#xff08;五&#xff09;——Redis实现分布式锁 setnxsetnx expiresetnx expire lua脚本set nx exset nx ex 随机值set nx ex 随机值 lua脚本set ex nx 随机值 lua脚本 锁续期RedissonRedLock 在Redis的众多应用场景中&#xff0c;分布式锁是Redis比…

解决分布式事务,Seata真香!

年IT寒冬&#xff0c;大厂都裁员或者准备裁员&#xff0c;作为开猿节流主要目标之一&#xff0c;我们更应该时刻保持竞争力。为了抱团取暖&#xff0c;林老师开通了《知识星球》&#xff0c;并邀请我阿里、快手、腾讯等的朋友加入&#xff0c;分享八股文、项目经验、管理经验等…

纯 CSS 实现文字换行环绕效果

实现效果 实现代码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta name"viewport" content"widthdevice-width, initial-scale1.0" /><title>Document</title><…

Windows10中配置并使用nvidia-smi

1. 问题 当在window10系统中使用nvidia-smi命令时&#xff1a; 会得到提示&#xff1a;nvidia-smi不是内部或外部命令&#xff0c;也不是可运行的程序或批处理文件。 注&#xff1a;其实安装NVIDIA控制面板时&#xff0c;软件已内置安装了nvidia-smi.exe&#xff0c;我们只需…

如何彻底删除Windows10系统D盘文件夹中的DeliveryOptimization

DeliveryOptimization是传递优化创建的文件夹。Windows 10的Delivery Optimization&#xff08;传递优化&#xff09;功能是用于加快下载Windows更新及其他Microsoft Store应用程序的速度的一种技术。Delivery Optimization使用了一个名为“DeliveryOptimization”&#xff08;…

zookeeper快速入门五:用zookeeper实现服务注册与发现中心

系列&#xff1a; zookeeper快速入门一&#xff1a;zookeeper安装与启动-CSDN博客 zookeeper快速入门二&#xff1a;zookeeper基本概念-CSDN博客 zookeeper快速入门三&#xff1a;zookeeper的基本操作 zookeeper快速入门四&#xff1a;在java客户端中操作zookeeper-CSDN博客…

鸿蒙Harmony应用开发—ArkTS声明式开发(容器组件:TabContent)

仅在Tabs中使用&#xff0c;对应一个切换页签的内容视图。 说明&#xff1a; 该组件从API Version 7开始支持。后续版本如有新增内容&#xff0c;则采用上角标单独标记该内容的起始版本。 子组件 支持单个子组件。 说明&#xff1a; 可内置系统组件和自定义组件&#xff0c;支…

运用html相关知识编写导航栏和二级菜单

相关代码&#xff1a; <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title><s…

Java代码审计安全篇-CSRF漏洞

前言&#xff1a; 堕落了三个月&#xff0c;现在因为被找实习而困扰&#xff0c;着实自己能力不足&#xff0c;从今天开始 每天沉淀一点点 &#xff0c;准备秋招 加油 注意&#xff1a; 本文章参考qax的网络安全java代码审计和部分师傅审计思路以及webgoat靶场&#xff0c;记录…

[嵌入式系统-40]:龙芯1B 开发学习套件 -10-PMON启动过程start.S详解

目录 一、龙芯向量表与启动程序的入口&#xff08;复位向量&#xff09; 1.1 复位向量&#xff1a; 1.2 代码执行流程 1.3 计算机的南桥 VS 北桥 二、PMON代码执行流程 三、Start.S详解 3.1 CPU初始化时所需要的宏定义 &#xff08;1&#xff09;与CPU相关的一些宏定义…

关于Ubuntu虚拟机识别不了USB设备的解决方案

唉昨天从网上找了一天的解决方案都没法让我的Ubuntu虚拟机识别USB设备&#xff0c;CSDN上有些方法是让从控制面板中进行修复&#xff0c;很多人都是一样的做法链接&#xff0c;那我觉得应该是可以解决的啊&#xff01; 结果我去控制面板执行修复的时候&#xff0c;显示报错“没…

基于Matlab的图像去雾系统设计,Matlab实现

博主简介&#xff1a; 专注、专一于Matlab图像处理学习、交流&#xff0c;matlab图像代码代做/项目合作可以联系&#xff08;QQ:3249726188&#xff09; 个人主页&#xff1a;Matlab_ImagePro-CSDN博客 原则&#xff1a;代码均由本人编写完成&#xff0c;非中介&#xff0c;提供…

第二百零八回

文章目录 1. 概念介绍2. 思路与方法2.1 实现思路2.2 实现方法 3. 示例代码4. 内容总结 我们在上一章回中介绍了"给geolocator插件提交问题的结果"相关的内容&#xff0c;本章回中将介绍自定义标题栏.闲话休提&#xff0c;让我们一起Talk Flutter吧。 1. 概念介绍 我…