【数据结构】详解双向链表

目录

一,链表的分类

二,双向链表

1,双向链表的结构

2,双向链表的创建及功能实现

三,顺序表和双向链表的优缺点分析


一,链表的分类

链表有三种属性,每种属性有两种情况,总共有2*2*2=8种情况。

其中不带头单向不循环链表就是单链表。

而带头双向循环链表就是双向链表。

下面是不同属性的情况:

二,双向链表

1,双向链表的结构

双向链表--带头双向循环链表

带头 --含有头节点(哨兵位)

双向--一个节点含有前驱指针prev和后继指针next

**循环--**尾节点的next指针指向头节点(哨兵位)

注意:当说单链表为空时,则单链表中就没有结点

当说双向链表为空时,此时链表还有一个头节点(哨兵位)

当双向链表:head == NULL,就不是一个有效的双向链表

链表的节点:

2,双向链表的创建及功能实现

gitee代码: https://gitee.com/codelsj-w/test.3.17.c.git

头文件:List.h

源文件:List.c

源文件:code.c

三,顺序表和双向链表的优缺点分析

相关推荐
Cthy_hy7 分钟前
并查集(Disjoint Set Union):巧判「连通聚类关系」的极简利器
数据结构·算法
阿Y加油吧34 分钟前
两道位运算 / 摩尔投票经典题复盘:只出现一次的数字 & 多数元素
数据结构·算法·leetcode
05候补工程师1 小时前
【408狂飙·数据结构】核心考点深度复盘:数组地址计算、特殊矩阵压缩存储与树的五大性质解题直觉
数据结构·笔记·线性代数·考研·算法·矩阵
炘爚2 小时前
数据结构:顺序表
数据结构
LuminousCPP2 小时前
数据结构 - 线性表第二篇:动态顺序表进阶接口实现
c语言·数据结构·笔记·顺序表·线性表
承渊政道2 小时前
【贪心算法】(经典实战应用解析(五):单调递增的数字、坏了的计算器、合并区间、⽆重叠区间、⽤最少数量的箭引爆⽓球)
数据结构·c++·leetcode·贪心算法·排序算法·动态规划·哈希算法
念恒123063 小时前
Python(while循环)
数据结构·python·算法
bqq198610263 小时前
Redis持久化
数据结构·数据库·redis·缓存
阳明山水4 小时前
模型迭代实战:如何将准确率从75%提升到89%
数据结构·人工智能·算法·机器学习·微信·微信公众平台·微信开放平台
故事和你915 小时前
洛谷-【图论2-2】最短路4
开发语言·数据结构·c++·算法·动态规划·图论