链表(基于C语言单向链表)

链表的实现的思想

链表表示一种是基于链接结构的线性表,链表实现的思想如下:
1、将表中的元素分别储存在一批独立的储存块里面。
2、表结构中的结点都能找到与之相关的下一个结点。
3、在前一个结点里用链表的方式显示的记录与下个结点之间的关联。

链表的简单结构组成

   1、 单链表的结点可用一个二元组来表示(elem,next),elem保存着表的数据项,next存储着下一个结点的标识。用到一个表时,只要知道这个表的首结点就可以寻根找到其他结点了。2、一个单链表由一些具体的表结点构成,每个结点都是一个对象,有的标识,也即该结点的链接,并且节点之间通过结点链接建立单向的顺序联系。3、通过判断一个值是否是空链表,可知是否已到链表的结束。

实例:(把一个结构体定义为一个类型以及一个指针类型以及类型里面也要拥有一个和前面一样的指针类型,使得表结构中的结点都能找到与之相关的下一个结点)
在这里插入图片描述
在这里插入图片描述
A的next是B的地址·········(表结构中的结点都能找到与之相关的下一个结点)!
最后通过打印运行
在这里插入图片描述
运行结果:
逐个打印出来了ABC的名字!
在这里插入图片描述

链表的插入

核心思想就是找到最后一个“Spy(前面命名的结构体名字)”,并且在它的独立的储存块里面的拥有下一个Spy的信息。

(即使最后一个结构体里面的next指向下一个Spy)
例子:假如一个都还没有插入,即head为NULL(空),就使他为新插入的Spy(这里命名为new_spy——新插入Spy的地址),这两个的定义类型一样的,忘记的往上面认真点看看,如果已经有Spy插入了,则head为第一个Spy的取地址,并且使new_spy里面的next为NULL(方便后面继续插入辨别最后一个Spy的操作),假如已经有Spy插入了,则即head不为NULL(空),那我们就要寻找最后一个Spy(最后一个Spy的next是空)!找到了就使它的next指向下一个Spy!

在这里插入图片描述

链表的删除

核心思想就是找到要删除的Spy的上一个Spy(特征:要删除的Spy的上一个Spy的next为要删除的Spy的地址),然后使得要删除的Spy的上一个Spy的next指向要删除的Spy的下一个Spy的地址!

在这里插入图片描述

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

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

相关文章

Facebook的声音:听见社交媒体的心跳

社交媒体如今已经成为人们日常生活中不可或缺的一部分,而Facebook作为其中的佼佼者,承载着数以亿计的用户的交流、分享和连接。在这个信息爆炸的时代,Facebook的声音就像是社交媒体的心跳,传递着无数个体的情感、思想和生活。本文…

【数据结构】三、栈和队列:2.顺序栈共享栈(顺序栈的初始化,判空,进栈,出栈,读取栈顶,顺序栈实例)

文章目录 1.顺序栈1.1初始化1.2判空1.3进栈1.4出栈1.5读取栈顶1.6销毁栈❗1.7顺序栈c实例 2.共享栈2.1初始化2.2判满 1.顺序栈 用顺序存储实现的栈 顺序栈的缺点:栈的大小不可变。 #define MaxSize 10 //定义栈中元素的最大个数 typedef struct{ElemType data[…

如何把为知笔记导入到Notion笔记里面

💡 大家好,我是可夫小子,《小白玩转ChatGPT》专栏作者,关注AIGC、读书和自媒体。 为知笔记并不开放,笔记文件只能以pdf或者图片的方向导出来,无法与其他笔记文件相互导入导出,然而,稍…

【QT学习】13.使用TCP实现文件传输

一。传输文件流程 二。实现 结果: 1. server server类属性 Ui::Widget *ui;QTcpServer* pTcpServer;QTcpSocket* pTcpSocket;//文件与文件信息QFile file;QString m_fileName;qint64 m_fileSize; //整个文件大小qint64 fileSize; //当前已经发送的文件大小bool …

巅峰之战·成长之美丨 纷享销客中南战区伙伴同行者大会圆满成功

近日,为期2天的纷享销客中南战区伙伴同行者大会在北京成功举行,从全国各地奔赴而来的渠道伙伴共襄盛举。大会以”巅峰之战成长之美“为主题,共同探讨”双向奔赴 、健康经营、赢盈共进“的发展之道。 一、数智赋能,任重道远 纷享销…

第三方软件测试机构的优势

软件测试机构在软件开发和验收过程中扮演着至关重要的角色,其优势主要体现在以下几个方面: 专业性:软件测试机构通常拥有专业的测试团队,这些团队成员具备丰富的测试经验和深厚的专业知识,能够准确识别软件中的潜在问…

新唐的nuc980/nuc972的开发1-环境和源码同步

开发环境安装 1.1更新源 服务器端:可以参考:Linux替换清华源_更改清华源-CSDN博客 下面是桌面端的方法: 打开系统的软件中心,选择自己想要使用的源 更新缓存 1.2安装必须的库 apt-get install patch apt-get install libc6-dev …

微信机器人openai免注册信用卡生成api

简介 chatgpt-on-wechat (cow) 项目是使用 ChatGPT 搭建的智能聊天机器人,在GPT3.5/4.0 API 及 itchat框架的基础上实现,支持微信公众号、企业微信、钉钉、飞书部署,能生成文本、语音和图片,访问操作系统和互联网。 最新版本支持…

【Qt之·控件·样式表】

系列文章目录 文章目录 前言一、Qt样式表的基础知识1.1 Qt样式表的定义和语法规则1.2 Qt样式表中的选择器和属性1.2.1 盒子模型1.2.2 border 1.3 Qt样式表中的伪类和伪元素 二、编写基本的Qt样式表2.1 在Qt应用程序中引入样式表文件的方式2.2 设置基本的背景色、字体样式等 三、…

大数据中的项目数据采集

Datax介绍 官网: DataX/introduction.md at master alibaba/DataX GitHub DataX 是阿里云 DataWorks数据集成 的开源版本,在阿里巴巴集团内被广泛使用的离线数据同步工具/平台。 DataX 实现了包括 MySQL、Oracle、OceanBase、SqlServer、Postgre、HDFS…

源码篇--Nacos服务--中章(8):Nacos服务端感知客户端实例变更-3

文章目录 前言一、客户端实例变更:二、实例变更感知:2.1 实例注册信息通知:2.1.1 接收DistroDataRequest 请求:2.1.2 onReceive 处理请求:2.1.3 processData 处理请求:2.1.4 handlerClientSyncData 处理数据…

数据库分库分表

数据库分库分表 分库分表到底是什么 分库分表其实是分库,分表,分库分表的总称 分库 将数据按照一定规则存储到不同的数据库中,每个数据库存储一部分数据 分库主要解决的是并发量过大的问题,并发量一旦上升,那么数据库就可能成为系统的瓶颈&#xff…