Python实现双向链表

作者:问答酱2024.02.17 09:30浏览量:3

简介:双向链表是一种更复杂的链表结构,每个节点包含两个链接,一个指向前一个节点,另一个指向下一个节点。在本篇文章中,我们将学习如何使用Python实现双向链表。

在Python中,我们可以使用类来实现双向链表。以下是一个简单的双向链表实现:

  1. class Node:
  2. def __init__(self, data=None):
  3. self.data = data
  4. self.next = None
  5. self.prev = None
  6. class DoublyLinkedList:
  7. def __init__(self):
  8. self.head = None
  9. def append(self, data):
  10. if not self.head:
  11. self.head = Node(data)
  12. else:
  13. cur = self.head
  14. while cur.next:
  15. cur = cur.next
  16. new_node = Node(data)
  17. cur.next = new_node
  18. new_node.prev = cur
  19. def prepend(self, data):
  20. new_node = Node(data)
  21. if self.head is None:
  22. self.head = new_node
  23. else:
  24. new_node.next = self.head
  25. self.head.prev = new_node
  26. self.head = new_node
  27. def print_list(self):
  28. cur = self.head
  29. while cur:
  30. print(cur.data)
  31. cur = cur.next

在这个实现中,我们首先定义了一个Node类,每个Node对象都有一个数据字段(用于存储数据)和两个链接字段(用于指向前一个和后一个节点)。然后我们定义了一个DoublyLinkedList类,它包含一个head字段(用于指向链表的第一个节点)以及一些方法来操作链表(例如,在链表的末尾添加新节点、在链表的开头添加新节点以及打印整个链表)。