带头双向循环链表
创始人
2025-05-30 16:05:43
0

在前面我们学习了单链表,发现单链表还是有一些不够方便,比如我们要尾插,需要遍历一遍然后找到它的尾,这样时间复炸度就为O(N),现在我们引入双向带头链表就很方便了,我们先看看它的结构。

通过观察,我们发现一个结构体里面我们存两个指针,一个指向前面的,一个指向后面的,这样就是双向了,头指针指向尾,我们找尾,只需要通过头指针找,很方便,我们找一个指针节点上一个,也很便利,如果是单链表,我们还需要从头开始找。所以是带头双向循环链表真的很方便。

我们先创建一个结构体,接下来就是对它初始化了。

因为我们我们是带头的,这个哨兵位的头需要在初始化的时候创建,后面我们插入数据也需要创建节点,所以我们就将创建节点的过程写成一个函数。

我们利用一个函数创建节点,初始化时结构体里面的指针指向自己

带头双向循环链表也和单链表一样,有头插,尾插,头删,尾删,在某个位置前插入,删除。

我们先来看看插入的操作,头插

头插,我们只需要改连接关系就好。
首先,我们创捷一个节点。
然后,在哨兵的后面插入节点,改变连接关系就可以完成连接。

尾插的插又怎么实现呢?

在之前的单链表,我们还需要找尾,然后在尾的后面插入(改连接关系)

我们的带头双向循环链表的便利之处在于,我们可以快速的找到尾,我们哨兵位的prev就是链表的尾。

在某个位置前面插入我们应该怎么做?

在单链表,我们需要找到pos位置前面的地址,我们要从头开始找。带头双向循环链表的便利在于我们的pos的prev就是我们要找的地址。简单的修改连接关系,就能完成我们的插入。

写着写着,我们发现,我们在某个位置插入元素好像和头插,尾插,有相似的地址。
头插,就是在哨兵位后一个节点的前面插入,我们也可以利用在某处插入元素的函数,这样大大节省书写时间。
尾插,就是在哨兵位的前面插入,这个更加简单。
所以我们的头插,尾插,可以复用我们在某处插入的函数。

插入讲完了,下面我们来说说删除。

尾删,是怎么操作的?

在单链表我们需要找到尾,同时记录尾的前一个,我们将尾释放,将尾前一个的next置尾空指针.

头删的操作。

我们带头双向循环链表,有一个哨兵位,所以我们需要绕开它,然后删除它后面的第一个节点,然后修改连接关系。我们删除前需要判断链表是否为空。

我们发现删除好像都需要判断是否为空,我们前面的尾删也需要,所以我们需要在尾删的地方加上判断。

如何删除某个节点的,我们需要配合一个查找函数,来查找节点。

我们发现删除某个节点位置的函数也可以与头删,尾删复用。

尾删我们传哨兵位的prev

头删我们传哨兵位的next

相关内容

热门资讯

【Android】之【Hand... 一、面试必问 1、Handler是什么 Handler是Android中的异步消息处理机制。当发送一...
【MySQL】007 -- 事...     此文章为《MySQL 实战 45 讲》的学习笔记,其课程链接可参见࿱...
美好中秋随笔 美好中秋随笔  对中秋的描写,有很多,有忧伤的思念、有团聚的喜悦、情感的缠绵、有月圆的美丽, 又到中...
教师教育教学随笔 教师教育教学随笔(精选10篇)  在学习和工作中,大家对随笔应该很熟悉吧?随笔通常指一种散文体裁,随...
旅游心情随笔 旅游心情随笔集锦15篇  在学习、工作生活中,大家一定都接触过随笔吧?随笔是过去社会较为流行的一种文...
音乐教师教育随笔   音乐是反映人类现实生活情感的一种艺术,是声音的艺术。 音乐是指有旋律、节奏或和声的人声或乐器音响...
Ubuntu连接不了网络的解决... 突然发现Ubuntu连不上网络,网络打问号或者右上角也没有网络图标;楼主...
阅读随笔 阅读随笔  阅读一些深刻的文字的时候,感觉就是对心灵进行一番洗礼。有的时候会很迷茫,很困惑,自己能否...
Flink学习--第一章 初识... Flink是Apache基金会旗下的一个开源大数据处理框架,如今已被很多人认为是大数据...
幼儿园教师教学随笔 幼儿园教师教学随笔幼儿园教师教学随笔越日,凤姐妹儿去试稀玉,托班教师随笔一说给他娶林妹子,他就大笑起...
唯美的中秋随笔 唯美的中秋随笔  又是一年月圆夜,顶着满天清辉,踏着满地翠玉,中秋节款而来。下面就和小编一起来看一下...
初中随笔 初中随笔五篇  篇一:  日子一天又一天的过去了,像石子抛向湖面,只是“咚”的一声便沉下去了。>时间...
【Spring-boot源码剥... 目录 一. 传说篇二. 快速启动原理三. 自动配置原理3.1 准备阶段3.2 配置阶段3.3 运行阶...
多标签损失之Hamming L... 多标签损失多标签评价指标之Hamming Loss多标签评价指标之Focal Loss多标签分类的交...
springcloud3 sp... 一  springcloud-config的作用 1.1 springcloud作用 springc...
幼儿园小班教师随笔 幼儿园小班教师随笔(精选8篇)  随笔,顾名思义:随笔一记,是散文的一个分支,是议论文的一个变体,兼...
小班幼儿教育随笔范文   在教育孩子的过程中需要学会自己积累教学经验,以下是小编收集的教育随笔,仅供大家阅读参考!  小班...
高中随笔 高中随笔200字(精选10篇)  读一本名著,感受当时文字的美妙和文化的博大精深下面小编为你整理了高...
那些年,我们都曾追星随笔 那些年,我们都曾追星随笔  “追星”是时今一种普遍的社会现象。追星的阶层主要是我们青少年这个群体。对...
中科图新社区网格化综治管理平台... 社区网格化-业务背景 党的十六大提出了“完善城市居民自治,建设管理有序、文明祥和的新型...