Doubly Linked List Program in Java

2025年3月28日 | 阅读 12 分钟

双向链表程序非常复杂,因为双向链表的节点包含两个字段:前一个节点(previous)和后一个节点(next)。在 CC++ 中,使用指针维护双向链表非常容易,但在 Java 中,没有指针的概念,这使得它的构建有点棘手。双向链表程序可以涉及创建双向链表、插入节点或删除节点。

让我们来理解一些双向链表的基本程序

创建双向链表

要创建节点,我们需要创建一个类来创建节点类型。该类包含三个属性,即 dataprevnext。数据可以是 intStringfloat 类型,而 prevnextNode 类型。用户存储信息,prev 和 next 指向双向链表中前一个和后一个节点。在给定的程序中,每一行代码都通过注释进行定义,以便您可以轻松理解代码。

CreateDoublyLinkedList.java

输出

Doubly Linked List Program in Java

将节点插入双向链表

在双向链表中,节点可以按以下方式之一插入:

  1. 在双向链表的开头。
  2. 在指定位置添加节点。
  3. 在链表末尾添加节点。

我们将逐一创建程序来理解所有这些方法。

在开头插入节点

CreateDoublyLinkedList 示例中,新创建的节点被添加到双向链表的末尾。当我们需要在链表开头添加节点时,需要更改头节点的值以及该头节点指向的节点。因此,我们将使用上面创建的相同示例。我们只在该程序中添加一个用于在链表开头添加节点的方法。

AddNodeInBeginning.java

输出

Doubly Linked List Program in Java

在末尾插入节点

我们也可以在链表末尾添加节点。在 CreateDoublyLinkedList 程序中,每个新创建的节点都添加到链表的末尾。因此,我们可以说插入节点到末尾的代码之前已经讨论过了。但为了更明确,我们提供了另一个示例,其中我们创建了一个单独的方法来添加节点。

AddNodeAtEnd.java

输出

Doubly Linked List Program in Java

在指定位置插入节点

为了创建在指定位置添加节点的程序,我们需要关注以下四种情况:

  1. 当双向链表为空,或者指定的位置在列表中不存在。
  2. 指定位置可以是 1,因此我们需要为在链表开头添加节点创建代码,这我们上面已经讨论过了。
  3. 该位置也可以是双向链表中的最后一个索引或位置。因此,我们也需要编写在链表末尾添加节点的代码。
  4. 最后一种情况是位置在头尾之间的某个位置。

在给定的代码中,我们为每种情况创建了单独的方法,并尽量使其简单。

AddNodeAtSpecifiedLocation.java

输出

Doubly Linked List Program in Java

从双向链表中删除节点

删除节点可能出现三种情况:

  1. 当节点是链表中的第一个节点时。
  2. 当节点是链表中的最后一个节点时。
  3. 当节点位于第一个和最后一个节点之间时。

在给定的程序中,我们为这三种不同情况创建了三个方法。程序中的每一行代码都通过注释进行了说明,以便于理解。

DeleteNodeFromList.java

输出

Doubly Linked List Program in Java