4.LinkedList的模拟实现:

LinkedList的底层是一个不带头的双向链表。
不带头双向链表中的每一个节点有三个域:值域,上一个节点的域,下一个节点的域。

不带头双向链表的实现:

public class Mylinkdelist{//定义一个内部类(节点)static class ListNode{int val;//值域ListNode prev;//指向前一个节点ListNode next;//指向后一个节点public ListNode(int val){//构造方法this.val=val;}}ListNode head=null;//定义一个头结点ListNode last=null;//定义一个尾链表public void addIndex(int Index,int data){//从指定位置插入int len=size();if(Index<0||Index>len){return ;}ListNode node = new ListNode (data); if(Index==0){addFirst(data);return ;}if(Index==len){addLast(data);return;}ListNode cur=head;int count=0;while(count!=Index){count++;cur=cur.next;}node.next=cur;node.prev=cur.prev;cur.prev.next=node;cur.prev=node;}public void addLast(int key){//尾插ListNode node=new ListNode(key);if(last==null){head=last=noed;}else{last.next=node;node.prev=last;last=node;}}public void addFirst(int key){//头插ListNode node=new ListNode(key);if(head==null){head=last=node;}else{node.next=head;head.prev=node;head=node;}}  public void diaplay(){//把双向链表展示出来ListNode cur=head;while(cur!=null){//用cur遍历链表System.out.print(cur.val+" ");cur=cur.next;}}public int size(){//求链表的长度ListNode cur=head;int count=0;while(cur!=null){cur=cur.next;count++:}return count;}public boolean contains(int key){//查找ListNode cur=head;while(cur!=null){if(cur.val==key){return true;}cur=cur.next;}return false;}public void remove(int key){//删除节点ListNode cur=head;while(cur!=null){if(cur.val==key){if(cur==head){head=head.next;if(head==null){head.prev=null;}}else{cur.prev.next=cur.next;if(cur.next==null){last=cur;}cur.next.prev=cur.prev;}}cur=cur.next;}}public void clear(){//清除链表ListNode cur=head;while(cur!=null){ListNode curN=cur.next;cur.next=null;cur.prev=null;cur=curN;}head=last=null;}
}

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

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

相关文章

Sentinel数据S2_SR_HARMONIZED连续云掩膜+中位数合成

在GEE中实现时&#xff0c;发现简单的QA60是无法去云的&#xff0c;最近S2地表反射率数据集又进行了更新&#xff0c;原有的属性集也进行了变化&#xff0c;现在的SR数据集名称是“S2_SR_HARMONIZED”。那么&#xff1a; 要想得到研究区无云的图像&#xff0c;可以参考执行以下…

理解计算机系统_网络编程(1)

前言 以<深入理解计算机系统>(以下称“本书”)内容为基础&#xff0c;对程序的整个过程进行梳理。本书内容对整个计算机系统做了系统性导引,每部分内容都是单独的一门课.学习深度根据自己需要来定 引入 网络是计算机科学中非常重要的部分,笔者过去看过相关的内…

【2025】Datawhale AI春训营-RNA结构预测(AI+创新药)-Task2笔记

【2025】Datawhale AI春训营-RNA结构预测&#xff08;AI创新药&#xff09;-Task2笔记 本文对Task2提供的进阶代码进行理解。 任务描述 Task2的任务仍然是基于给定的RNA三维骨架结构&#xff0c;生成一个或多个RNA序列&#xff0c;使得这些序列能够折叠并尽可能接近给定的目…

vim 命令复习

命令模式下的命令及快捷键 # dd删除光所在行的内容 # ndd从光标所在行开始向下删除n行 # yy复制光标所在行的内容 # nyy复制光标所在行向下n行的内容 # p将复制的内容粘贴到光标所在行以下&#xff08;小写&#xff09; # P将复制的内容粘贴到光标所在行以上&#xff08;大写&…

哪些心电图表现无缘事业编体检呢?

根据《公务员录用体检通用标准》心血管系统条款及事业单位体检实施细则&#xff0c;心电图不合格主要涉及以下类型及处置方案&#xff1a; 一、心律失常类 早搏&#xff1a;包括房性早搏、室性早搏和交界性早搏。如果每分钟早搏次数较多&#xff08;如超过5次&#xff09;&…

Linux学习——UDP

编程的整体框架 bind&#xff1a;绑定服务器&#xff1a;TCP地址和端口号 receivefrom()&#xff1a;阻塞等待客户端数据 sendto():指定服务器的IP地址和端口号&#xff0c;要发送的数据 无连接尽力传输&#xff0c;UDP:是不可靠传输 实时的音视频传输&#x…

ReAct Agent 实战:基于DeepSeek从0到1实现大模型Agent的探索模式

写在前面:动态思考,边想边做 大型语言模型(LLM)的崛起开启了通用人工智能(AGI)的无限遐想。但要让 LLM 从一个被动的“文本生成器”转变为能够主动解决问题、与环境交互的智能体(Agent),我们需要赋予它思考、行动和学习的能力。ReAct (Reason + Act) 框架正是实现这一…

从物理到预测:数据驱动的深度学习的结构化探索及AI推理

在当今科学探索的时代&#xff0c;理解的前沿不再仅仅存在于我们书写的方程式中&#xff0c;也存在于我们收集的数据和构建的模型中。在物理学和机器学习的交汇处&#xff0c;一个快速发展的领域正在兴起&#xff0c;它不仅观察宇宙&#xff0c;更是在学习宇宙。 AI推理 我们…

结合地理数据处理

CSV 文件不仅可以存储表格数据&#xff0c;还可以与地理空间数据结合&#xff0c;实现更强大的地理处理功能。例如&#xff0c;你可以将 CSV 文件中的坐标数据转换为点要素类&#xff0c;然后进行空间分析。 示例&#xff1a;将 CSV 文件中的坐标数据转换为点要素类 假设我们有…

SpringBoot中6种自定义starter开发方法

在SpringBoot生态中,starter是一种特殊的依赖,它能够自动装配相关组件,简化项目配置。 自定义starter的核心价值在于: • 封装复杂的配置逻辑,实现开箱即用 • 统一技术组件的使用规范,避免"轮子"泛滥 • 提高开发效率,减少重复代码 方法一:基础配置类方式 …

滚珠导轨松动会导致哪些影响?

直线导轨用于高精度或快速直线往复运动场所&#xff0c;且能够担负一定的扭矩&#xff0c;在高负载的情况下实现高精度的直线运动。它主要由导轨和滑块组成&#xff0c;其中导轨作为固定元件&#xff0c;滑块则在其上进行往复直线运动。但是滚珠导轨松动会导致哪些影响&#xf…

从零开始搭建Django博客②--Django的服务器内容搭建

本文主要在Ubuntu环境上搭建&#xff0c;为便于研究理解&#xff0c;采用SSH连接在虚拟机里的ubuntu-24.04.2-desktop系统搭建&#xff0c;当涉及一些文件操作部分便于通过桌面化进行理解&#xff0c;通过Nginx代理绑定域名&#xff0c;对外发布。 此为从零开始搭建Django博客…

ZLMediaKit支持JT1078实时音视频

ZLMediaKit 对 JT1078 实时音视频协议的支持主要通过其扩展版本或与其他中间件结合实现。以下是基于搜索结果的综合分析&#xff1a; 一、ZLMediaKit 原生支持能力 开源版本的基础支持 ZLMediaKit 开源版本本身未直接集成 JT1078 协议解析模块&#xff0c;但可通过 RTP 推流功能…

Java队列(Queue)核心操作与最佳实践:深入解析与面试指南

文章目录 概述一、Java队列核心实现类对比1. LinkedList2. ArrayDeque3. PriorityQueue 二、核心操作API与时间复杂度三、经典使用场景与最佳实践场景1&#xff1a;BFS层序遍历&#xff08;树/图&#xff09;场景2&#xff1a;滑动窗口最大值&#xff08;单调队列&#xff09; …

MetaGPT智能体框架深度解析:记忆模块设计与应用实践

在AI智能体技术从单点突破迈向系统工程的关键阶段&#xff0c;MetaGPT凭借其创新的记忆架构重新定义了多智能体协作范式。本文深度解构其革命性的三级记忆系统&#xff0c;揭秘支撑10倍效能提升的知识蒸馏算法与动态上下文控制策略&#xff0c;通过企业级应用案例与性能基准测试…

集结号海螺捕鱼服务器调度与房间分配机制详解:六

本篇围绕服务器调度核心逻辑进行剖析&#xff0c;重点讲解用户连接过程、房间分配机制、服务端并发策略及常见性能瓶颈优化。适用于具备中高级 C 后端开发经验的读者&#xff0c;覆盖网络会话池、逻辑服调度器与房间生命周期管理等关键模块。 一、服务器结构概览 整体系统采用…

【电子通识】热敏打印机是怎么形成(打印)图像和文字的?

在我们身边&#xff0c;热敏打印方式常见用于装饰贴纸、便利店的小票。此外&#xff0c;物流及食品条码标签、身份证件、机票・火车票、X光片、食品日期印刷等&#xff0c;很多打印都用到了热敏打印头。 热敏打印头的蓄热层(涂釉层)上分布着一排加热元件&#xff08;发热线&…

SQL注入漏洞中会使用到的函数

目录 一、信息获取函数 1. 通用函数 2. 元数据查询&#xff08;INFORMATION_SCHEMA&#xff09; 二、字符串操作函数 1. 字符串连接 2. 字符串截取 3. 编码/解码 三、报错注入专用函数 1. MySQL 2. SQL Server 3. PostgreSQL 四、时间盲注函数 1. 通用延迟 2. 计…

车载信息安全架构 --- 汽车网络安全

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 周末洗了一个澡,换了一身衣服,出了门却不知道去哪儿,不知道去找谁,漫无目的走着,大概这就是成年人最深的孤独吧! 旧人不知我近况,新人不知我过…

Linux423 删除用户

查找 上面已查过&#xff1a;无法使用sudo 新开个终端试试 之前开了一个终端&#xff0c;按照deepseek排查 计划再开一个进程 开一个终端 后强制删除时显示&#xff1a;此事将被报告