创建并展示双向链表的Python程序

创建并展示双向链表的Python程序

双向链表是一种常见的数据结构,它具有单向链表的所有特点,同时还能实现双向遍历。在Python中,我们可以通过创建一个双向链表类来实现双向链表的操作。本文将介绍如何创建并展示双向链表的Python程序。

双向链表的定义

在双向链表中,每个节点都有两个指针,分别指向前一个节点和后一个节点。每个节点通常包含两个部分,一是实际数据,另一个是指向前后节点的指针。

因此,我们需要定义一个节点类来表示双向链表中的每个节点。以下是Python中定义节点类的代码:

class Node:
    def __init__(self, data):
        self.data = data
        self.next = None
        self.prev = None

上面的代码定义了一个具有数据和两个指针的节点类,其中data存储节点的实际数据,next指向下一个节点,prev指向前一个节点。

双向链表的创建

在了解了双向链表节点类的定义后,我们需要定义一个双向链表类来实现双向链表的创建和展示。

以下是Python中定义双向链表类的代码:

class DoublyLinkedList:
    def __init__(self):
        self.head = None

    def add_node(self, data):
        new_node = Node(data)
        if self.head is None:
            self.head = new_node
        else:
            current = self.head
            while current.next:
                current = current.next
            current.next = new_node
            new_node.prev = current

    def display(self):
        current = self.head
        while current:
            print(current.data)
            current = current.next

在上面的代码中,我们定义了一个双向链表类DoublyLinkedList,该类具有两个方法:

  • __init__(): 该方法用于初始化双向链表,将头节点指针初始化为None
  • add_node(data): 该方法用于向双向链表的末尾添加一个新节点;
  • display(): 该方法用于展示整个双向链表的数据。

具体来说,当我们调用add_node()方法时,会创建一个新节点,并将其添加到双向链表的末尾;同时,若头节点为空,则直接将该节点设置为头节点;否则,我们需要遍历整个双向链表,找到最后一个节点,并将该节点的next指针指向新节点,同时将新节点的prev指针指向最后一个节点。

当我们需要展示整个双向链表的数据时,只需要从头节点开始遍历整个链表,并输出每个节点的数据即可。

双向链表的操作示例

为了更好地理解双向链表的创建以及操作,我们在下面给出一个具体的双向链表操作示例。

# 创建一个新的双向链表
mylist = DoublyLinkedList()

# 向链表末尾添加元素
mylist.add_node(10)
mylist.add_node(20)
mylist.add_node(30)

# 展示整个链表
mylist.display()

运行上面的代码后,即可得到以下输出结果:

10
20
30

结论

通过以上示例,我们已经学会了如何在Python中创建并展示双向链表。双向链表的创建主要包含节点类和双向链表类的定义,具体操作可以使用add_node()方法实现节点的添加,以及使用display()方法展示整个链表的数据。希望本文对你有所帮助。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程