简介:双向链表是一种更复杂的链表结构,每个节点包含两个链接,一个指向前一个节点,另一个指向下一个节点。在本篇文章中,我们将学习如何使用Python实现双向链表。
在Python中,我们可以使用类来实现双向链表。以下是一个简单的双向链表实现:
class Node:def __init__(self, data=None):self.data = dataself.next = Noneself.prev = Noneclass DoublyLinkedList:def __init__(self):self.head = Nonedef append(self, data):if not self.head:self.head = Node(data)else:cur = self.headwhile cur.next:cur = cur.nextnew_node = Node(data)cur.next = new_nodenew_node.prev = curdef prepend(self, data):new_node = Node(data)if self.head is None:self.head = new_nodeelse:new_node.next = self.headself.head.prev = new_nodeself.head = new_nodedef print_list(self):cur = self.headwhile cur:print(cur.data)cur = cur.next
在这个实现中,我们首先定义了一个Node类,每个Node对象都有一个数据字段(用于存储数据)和两个链接字段(用于指向前一个和后一个节点)。然后我们定义了一个DoublyLinkedList类,它包含一个head字段(用于指向链表的第一个节点)以及一些方法来操作链表(例如,在链表的末尾添加新节点、在链表的开头添加新节点以及打印整个链表)。