Java数据结构-双向链表
概念
链表是一种基本的数据结构,由许多节点构成,每个节点包括两个部分
- 数据部分:保存实际数据
- 地址部分:保存上一个或者下一个节点的地址。
节点在存储器中位置是任意的,内存不连续,可以通过头或者尾进入链表,向前或者向后扫描确定对应节点的位置(单向链表只能从头进入链表,向后扫描)。
优点:修改效率高,增加,删除元素的时候不必移动元素,只需修改节点引用就行。
缺点:访问节点效率较低,每次存取元素,只能按照顺序定位节点(双向链表具体访问时可以通过索引与集合元素数量大小比较确定是从头顺序访问还是尾顺序访问)。
双向链表的原理图如下:
head是头节点,tail是尾节点,可以通过它们定位,遍历链表。每个节点都有一个next和pre引用,分别指向下一个节点和上一个节点。
Java实现双向链表
目标:
-
实现添加元素方法
-
实现删除元素方法
-
实现获取元素方法
-
实现替换元素方法
-
实现获取元素个数方法
接口:
实现接口类
自定义节点类
实现添加元素的方法
实现删除元素方法
实现获取元素方法
实现替换元素方法
实现获取元素个数方法
链表开头添加元素的方法
链表尾部添加元素的方法
调试
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 使用C#创建一个MCP客户端
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 按钮权限的设计及实现