2025年单向链表和双向链表的数据结构(单向链表与双向链表)

单向链表和双向链表的数据结构(单向链表与双向链表)div id navCategory div 概念 链表是一种物理存储结构上非连续 非顺序的存储结构 数据元素的逻辑顺序是通过链表中的指针链接次序实现的 实际中链表的结构非常多样 以下情况组合起来就有 8 种链表结构 单向或者双向 带头或者不带头 循环或者非循环 虽然有这么多的链表的结构 但是我们实际中最常用还是两种结构

大家好,我是讯享网,很高兴认识大家。



 <div id="navCategory"></div> 

讯享网

概念:链表是一种物理存储结构上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的 。


讯享网

实际中链表的结构非常多样,以下情况组合起来就有8种链表结构

单向或者双向

带头或者不带头

循环或者非循环

虽然有这么多的链表的结构,但是我们实际中最常用还是两种结构

  • 无头单向非循环链表:结构简单,一般不会单独用来存数据。实际中更多是作为其他数据结构的子结构,如哈希桶、图的邻接表等等。另外这种结构在笔试面试中出现很多。
  • 带头双向循环链表:结构最复杂,一般用在单独存储数据。实际中使用的链表数据结构,都是带头双向循环链表。另外这个结构虽然结构复杂,但是使用代码实现以后会发现结构会带来很多优势,实现反而简单了,后面我们代码实现了就知道了

单向链表结构

2.2.1 打印链表

2.2.2 搞出一个新节点(为其他函数服务)

2.2.3 链表尾插

2.2.4 链表头插

2.2.5 链表尾删

方法1(用两个指针,分别找最后一个和倒数第二个):

方法2(直接找倒数第二个):

2.2.6 链表头删

2.2.7 查找节点

2.2.8 在pos位置之前插入

2.2.9 在pos位置之后插入

方法1:两个指针,先连接pos和newnode还是先连接newnode和next都行

方法2:只有一个指针,一定要先通过pos连接newnode和下一个,再连接pos和newnode,否则会找不到下一个的地址。

2.2.10 删除pos位置

2.2.11 删除pos之后位置

2.2.12 链表销毁

一个个找,一个个销毁,最终将slist置空。

总结:单链表结构,适合头插头删。尾部或者中间某个位置插入删除不适合。如果要使用链表单独存储数据,那我们之后会学的双向链表更合适。单链表学习的意义:

  • 单链表会作为我们之后学习复杂数据结构的子结构(图的邻接表、哈希桶)
  • 单链表会出很多经典的练习题。

链表系列有很多重点内容,我会花不少时间来跟大家讲解链表,相信大家跟着练习的话编程严谨性会大大提升,加油哦!

到此这篇关于C语言数据结构超详细讲解单向链表的文章就介绍到这了,更多相关C语言 单向链表内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

小讯
上一篇 2025-04-16 14:28
下一篇 2025-04-29 17:41

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/201548.html