【7】双向循环链表

【7】双向循环链表

  • 1、双向循环链表
  • 2、添加
  • 3、删除

1、双向循环链表

在这里插入图片描述

🖊 头节点的 prev 指向尾节点
🖊 尾节点的 next 指向头节点

2、添加

 /*** 往索引位置添加元素*/@Overridepublic void add(int index, E element) {checkIndex4Add(index);if (index == size) { // 添加到尾节点位置Node<E> oldLast = last;// 双向循环链表的尾节点的next指向头节点last = new Node<>(element, last, first);if (oldLast == null) { // 添加第一个节点的时候first = last;first.next = first;first.prev = first;} else {oldLast.next = last;first.prev = last;}} else {Node<E> next = node(index);Node<E> prev = next.prev;Node<E> newNode = new Node<>(element, prev, next);next.prev = newNode;prev.next = newNode;if (next == first) { // index == 0first = newNode;}}size++;}

在这里插入图片描述
在这里插入图片描述

3、删除

 /*** 删除索引位置的元素*/@Overridepublic E remove(int index) {checkIndex(index);Node<E> delNode = first;if (size == 1) {first = last = null;} else {delNode = node(index);Node<E> prev = delNode.prev;Node<E> next = delNode.next;prev.next = next;next.prev = prev;if (first == delNode) {first = next;}if (last == delNode) {last = prev;}}size--;return delNode.element;}

在这里插入图片描述

🖊 双向循环链表完整代码

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/795714.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

《QT实用小工具·十三》FlatUI辅助类之各种炫酷的控件集合

1、概述 源码放在文章末尾 FlatUI辅助类之各种炫酷的控件集合 按钮样式设置。文本框样式设置。进度条样式。滑块条样式。单选框样式。滚动条样式。可自由设置对象的高度宽度大小等。自带默认参数值。 下面是demo演示&#xff1a; 项目部分代码如下所示&#xff1a; #ifnd…

抖音运营技巧2

短视频起号的7步骤 1、自我分析 先明确自己的兴趣爱好&#xff0c;有什么特长及能力 你能给粉丝带来什么价值&#xff0c;目标用户是谁 2、找对标账号 通过自我分析做出账号定位选择参与的赛道 找最少10个优秀同行(三个阶段级别的账号) 3、搭建账号主页 头像、昵称、主…

“人性化设计”技术概要

本文是由《埃森哲技术愿景 2024&#xff1a;“人性化设计”技术将通过提高生产力和创造力来重塑行业并重新定义领导者》这个文章来翻译解读的。原文地址如下&#xff0c;大家可以自行下载&#xff1a; 下载地址 其实看到这篇文章的时候&#xff0c;联想到这些年机器人的市场发展…

一站式指南:Flutter应用如何顺利登陆苹果App Store

引言 &#x1f680; Flutter作为一种跨平台的移动应用程序开发框架&#xff0c;为开发者提供了便利&#xff0c;使他们能够通过单一的代码库构建出高性能、高保真度的应用程序&#xff0c;同时支持Android和iOS两个平台。然而&#xff0c;完成Flutter应用程序的开发只是第一步…

Spark-Scala语言实战(10)

在之前的文章中&#xff0c;我们学习了如何在spark中使用RDD的filter,distinct,intersection三种方法。想了解的朋友可以查看这篇文章。同时&#xff0c;希望我的文章能帮助到你&#xff0c;如果觉得我的文章写的不错&#xff0c;请留下你宝贵的点赞&#xff0c;谢谢。 Spark-…

ThingsBoard通过MQTT发送遥测数据

MQTT基础 客户端 MQTT连接 遥测上传API 案例 MQTT基础 MQTT是一种轻量级的发布-订阅消息传递协议&#xff0c;它可能最适合各种物联网设备。 你可以在此处找到有关MQTT的更多信息&#xff0c;ThingsBoard服务器支持QoS级别0&#xff08;最多一次&#xff09;和QoS级别1&…

PTA 6-24 稀疏矩阵求和

本题实现稀疏矩阵的求和运算。 函数接口定义&#xff1a; int add_mat(elem a[],int t1,elem b[],int t2, elem c[]);//求ab其中 t1 和 t2 表示稀疏矩阵a的长度和稀疏矩阵b的长度&#xff0c;函数返回ab的长度。 裁判测试程序样例&#xff1a; #include <stdio.h> #d…

我的C++奇迹之旅:内联函数和auto关键推导和指针空值

文章目录 &#x1f4dd;内联函数&#x1f320; 查看内联函数inline方式&#x1f309;内联函数特性&#x1f309;面试题 &#x1f320;auto关键字(C11)&#x1f320; auto的使用细则&#x1f309;auto不能推导的场景 &#x1f320;基于范围的for循环(C11)&#x1f320;范围for的…

【2023年软考架构师】案例真题回忆版

说明:内容仅为案例真题回忆版,有些内容仅为原题相关内容延伸,非原题。仅关注知识点即可。 试题① 大数据 某网作为某电视台在互联网上的大型门户入口,某一年成为某奥运会中国大陆地区的特权转播商,独家全程直播了某奥运会全部的赛事,积累了庞大稳定的用户群,这些用户在使…

C语言----找出10个整数中的最大值

今天让我们来看看如何找出10个数的最大值吧。 题目描述 今天杰克在做数学题目的时候产生了思考&#xff0c;我应该怎么才能找出10个数的最大值呢&#xff0c;给大家一道题目&#xff0c;帮帮杰克吧&#xff0c;现有数组int arr[] { 1,2,15,4,8,6,23,8,9,10 };&#xff0c;使用…

【Consul】基于Golang实现Consul服务的注册、注销、修改、监控注册的服务变化、实时同步服务信息机制

【Consul】基于Go实现Consul服务的注册、注销、修改、监控注册的服务变化、实时同步服务信息机制 大家好 我是寸铁&#x1f44a; 总结了一篇【Consul】基于Go实现Consul服务的注册、注销、修改、监控注册的服务变化、实时同步服务信息机制✨ 这应该是目前全网最全的使用golang手…

软考简答题

1.质量属性效用树 1.主要关注性能&#xff0c;可用性&#xff0c;安全性和可修改性&#xff08;升级&#xff09;进行分析 2.架构风格 2.1.分类 1. 解释器&#xff08;interpreter&#xff09;&#xff1a;灵活性最高&#xff0c;建模为有向无环图&#xff0c;采用工作流方…

go中的常用的关键字

目录 一:前言 二:select 三:defer 四:panic 和 recover 五:make 和 new 一:前言 上一节中,我们重点介绍了go语言中的for关键字的使用以及重点注意的地方,这一节我们用一篇文章,介绍下常用的关键字以及注意事项。 二:select select语句用于处理多个通信操作…

AttributeError: ‘FreeTypeFont‘ object has no attribute ‘getsize‘

说明&#xff1a;在一次程序读取字体样式&#xff0c;想要获取字体尺寸时&#xff0c;报下面的错误&#xff1b; AttributeError: FreeTypeFont object has no attribute getsize问题 # 加载字体样式和设置字体大小font ImageFont.truetype("SourceCodePro-Bold.ttf&quo…

网络原理 - HTTP / HTTPS(5)——https协议

目录 一、HTTPS是什么 为什么要进行加密 二、“加密” 是什么 三、HTTPS的工作过程 &#xff08;1&#xff09;引入对称加密 对称密钥的特点&#xff1a; &#xff08;2&#xff09;引入非对称加密 非对称加密的特点&#xff1a; &#xff08;3&#xff09;中间人攻击…

JavaScript流程控制语句

目录 前言: 1.JavaScript的组成: 1.1ECMAScript: 1.2DOM (Document Object Model): 1.3BOM (Browser Object Model) 2.js的写法: 2.1内部写法&#xff1a; 2.2 外部写法&#xff1a; 3.流程控制语句: 3.1从这开始&#xff0c;代码更具有逻辑性: 3.2从这开始&#xff0c…

数据结构之顺序表的相关知识点及应用

个人主页&#xff08;找往期文章包括但不限于本期文章中不懂的知识点&#xff09;&#xff1a;我要学编程(ಥ_ಥ)-CSDN博客 目录 顺序表的概念及结构 顺序表的分类 顺序表的实现 在顺序表中增加数据 在顺序表中删除数据 在顺序表中查找数据 顺序表源码 顺序表的概念…

安全的通信协议HTTPS被攻击改采用什么防护方案

随着互联网的发展&#xff0c;保护用户在网上交换的敏感信息的安全性变得至关重要。HTTPS&#xff08;Hypertext Transfer Protocol Secure&#xff09;作为一种安全的通信协议&#xff0c;通过加密数据传输&#xff0c;保护用户的隐私和数据安全。然而&#xff0c;尽管HTTPS提…

Java配置自定义校验

1、自定义注解State message、groups、payload package com.zhang.anno;import com.zhang.validartion.StateValidation; import jakarta.validation.Constraint; import jakarta.validation.Payload;import java.lang.annotation.*;import static java.lang.annotation.Eleme…

Django -- 自动化测试

概述 测试是一种例行的、不可缺失的工作&#xff0c;用于检查你的程序是否符合预期。 测试可以划分为不同的级别。一些测试可能专注于小细节&#xff08;比如某一个模型的方法是否会返回预期的值&#xff1f;&#xff09;&#xff0c; 一些测试则专注于检查软件的整体运行是否…