数据结构(长期更新)第6讲:双向链表
数据结构(长期更新)
第6讲:双向链表
跟着潼心走,轻松拿捏C语言,困惑通通走,一去不回头~欢迎开始今天的学
习内容,你的支持就是博主最大的动力。
博主主页:潼心1412o-CSDN博客
目录
数据结构(长期更新)
第6讲:双向链表
前言
6.1 链表的分类
6.2 双链表的创建
6.3 双链表的基操
前言
上节课我们进行了单链表算法题目的练习,我们发现很多时候就是因为单链表只会存储下一个节点的地址,导致只能单向遍历找尾,这带来了很大不便利性。而双向链表就是可以进行双向遍历的存在,那么还等啥啊,gogogo,出发喽~
6.1 链表的分类
链表的结构非常多样
根据以下分类依据可分为8种链表


之前我们所说的单链表就属于不带头单向不循环链表
而今天学的双向链表就是带头双向循环链表

head即为我们先前提到过的哨兵位,为头节点,只用于占位和存储前后节点的指针
6.2 双链表的创建

申请新节点

在初始化时,我们就遇到问题了
单链表为空,指向第一个节点的指针为空
而双向链表为空,只有一个头节点,不能为空
那我们如何初始化呢
方法一:直接创建指向链表空指针,传空指针地址,通过改变形参进行初始化


方法二:通过返回值直接返回双向链表进行初始化


6.3 双链表的基操
尾插

打印


头插

判空

尾删

头删

查找指定位置元素

在指定位置后插入元素

在指定位置删除

好了今天的学习内容就到这里啦,谢谢你的陪伴,我是潼心,下次再见~如果这篇文章对你有帮助的话。请务必给主播一个一键三连,球球了,这对主播很重要~
博主主页:潼心1412o-CSDN博客
