day2:双向链表基本操作

前言:又是打卡学习的一天了,今天开坑链表的双向链表,很可惜今天的代码没有编译成功。报错问题我会留在后面,希望某位大佬看到我文章能我解答一下。

同样,以下的代码和知识点同样来自网络和教材,如果雷同,请联系我删除

坚持变强的第二天!


双向链表基础操作包括初始化、删除、插入(尾插和头插)、遍历今天就学了这么多

双向链表的结点有两个指针域,其一指向直接后继,另一指向直接前驱day2:双向链表基本操作_第1张图片

 与单链表相比,而双向链表存在两个环,有一个表头结点的空表,所以我们要首先建立一个表头节点的空表day2:双向链表基本操作_第2张图片

 因为是空表,所以他们的前驱和后继都指向同一个值。然后就该初始化了呗,day2:双向链表基本操作_第3张图片

 这个newNode相当于一个插入的节点

插入

我学的头插法,大概意思是新插入的元素始终成为当前第一个元素

然后这个要画图自己理解(忽略我字不好看,还有那里的尾插,哈哈哈)

以下是我自己的图理解day2:双向链表基本操作_第4张图片

 具体代码是day2:双向链表基本操作_第5张图片

 还是要慢慢理解的

删除

跟单链表的操作一样的,我就不在赘述了,直接上我的图解分析吧day2:双向链表基本操作_第6张图片

 day2:双向链表基本操作_第7张图片

 第一个if那里是尾结点等于头结点时,就已经查找完了。

问题

day2:双向链表基本操作_第8张图片

 我也不知道这个是不是我第一个建立空链表的结构体问题。

然后就这么多吧,过几天我也会来跟这个问题的解答吧,今天的收获这么多,又是满满收获的一天。哈哈


也许我的文章并没有多强的技术性,也没有很强的逻辑性,这只是我记录我在数据结构上学习的历程吧,自学数据结构真的好难啊,就这么一点点东西就花了我一个下午的时间,可能我比较拉胯吧,写到这里差不多都已经午夜12点了,室友的游戏声和视频声充斥着整个寝室。其实我也不想卷,我想躺平的,但我不知道我想卷的原因吧,明天我将继续打卡!睡了睡了day2:双向链表基本操作_第9张图片

 

你可能感兴趣的:(数据结构,c语言,链表)