创建并展示双向链表的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()
方法展示整个链表的数据。希望本文对你有所帮助。