Java数据结构-双向链表

概念

链表是一种基本的数据结构,由许多节点构成,每个节点包括两个部分

  1. 数据部分:保存实际数据
  2. 地址部分:保存上一个或者下一个节点的地址。

节点在存储器中位置是任意的,内存不连续,可以通过头或者尾进入链表,向前或者向后扫描确定对应节点的位置(单向链表只能从头进入链表,向后扫描)。

优点:修改效率高,增加,删除元素的时候不必移动元素,只需修改节点引用就行。
缺点:访问节点效率较低,每次存取元素,只能按照顺序定位节点(双向链表具体访问时可以通过索引与集合元素数量大小比较确定是从头顺序访问还是尾顺序访问)。

双向链表的原理图如下:
head是头节点,tail是尾节点,可以通过它们定位,遍历链表。每个节点都有一个next和pre引用,分别指向下一个节点和上一个节点。
image

Java实现双向链表

目标:

  1. 实现添加元素方法

  2. 实现删除元素方法

  3. 实现获取元素方法

  4. 实现替换元素方法

  5. 实现获取元素个数方法

接口:

image

实现接口类

image

自定义节点类

image

实现添加元素的方法

image
image

实现删除元素方法

image

image

实现获取元素方法

image

实现替换元素方法

image

实现获取元素个数方法

image

链表开头添加元素的方法

image
image

链表尾部添加元素的方法

image

image

调试

image
image

posted @ 2022-01-27 10:59  她与代码皆失  阅读(150)  评论(0)    收藏  举报