5. Python 程序创建和显示双向链表。

2025年3月17日 | 阅读 3 分钟

在这个程序中,我们将创建一个双向链表并打印列表中存在的所有节点。

双向链表

双向链表是链表的一种变体。链表是一种线性数据结构,可以描述为节点的集合。节点通过指针连接。每个节点包含两个字段:数据和指向下一个字段的指针。链表的第一个节点称为头节点,链表的最后一个节点称为尾节点。

单向链表的局限性之一是它只能在一个方向(即向前)遍历。双向链表通过提供一个指向前一个节点的额外指针克服了这一限制。借助前一个指针,双向链表可以向后遍历,从而使插入和删除操作更容易执行。因此,双向链表中的典型节点由三个字段组成:

  • 数据表示存储在节点中的数据值。
  • 前一个表示指向前一个节点的指针。
  • Next 代表一个指向列表中下一个节点的指针。
Python program to create and display a doubly linked list

上图表示一个双向链表,其中每个节点都有两个指针,分别指向前一个节点和后一个节点。这里,节点 1 代表链表的头部。头节点的 previous 指针总是指向 NULL。节点 1 的 Next 指针将指向节点 2。节点 5 代表链表的尾部,其 previous 指针将指向节点 4,而 Next 指针将指向 NULL。

算法

  1. 定义一个 Node 类,它表示列表中的一个节点。它将有三个属性:数据、previous 指向前一个节点,以及 next 指向下一个节点。
  2. 定义另一个用于创建双向链表的类,它有两个节点:头节点和尾节点。最初,头节点和尾节点将指向 null。
  3. addNode() 将向列表中添加节点。
  • 它首先检查头节点是否为 null,然后将节点作为头节点插入。
  • 头节点和尾节点都将指向新添加的节点。
  • 头节点的前一个指针将指向 null,尾节点的下一个指针将指向 null。
  • 如果头节点不为 null,则新节点将插入到列表的末尾,使得新节点的前一个指针将指向尾节点。
  • 新节点将成为新的尾节点。尾节点的下一个指针将指向 null。

a. display() 将显示列表中存在的所有节点。

  • 定义一个新节点“current”,它将指向头节点。
  • 打印 current.data 直到 current 指向 null。
  • 在每次迭代中,current 将指向列表中的下一个节点。

程序

输出

Nodes of doubly linked list: 
1 2 3 4 5
下一个主题Python 程序