Python双向链表
时间: 2024-06-18 19:01:26 浏览: 160
Python双向循环链表实现方法分析
Python并没有内置的双向链表数据结构,但是可以通过自定义类来实现一个简单的双向链表。双向链表的特点是每个节点都有一个指向前一个节点和后一个节点的引用,这使得插入和删除操作更为高效。
以下是一个简单的双向链表节点类(DoublyLinkedListNode)和双向链表类(DoublyLinkedList)的实现:
```python
class DoublyLinkedListNode:
def __init__(self, data=None):
self.data = data
self.prev = None # 前一个节点的引用
self.next = None # 后一个节点的引用
class DoublyLinkedList:
def __init__(self):
self.head = None
self.tail = None
# 插入节点到链表尾部
def append(self, data):
new_node = DoublyLinkedListNode(data)
if not self.head:
self.head = self.tail = new_node
else:
new_node.prev = self.tail
self.tail.next = new_node
self.tail = new_node
# 删除指定节点
def remove(self, node):
if node.prev:
node.prev.next = node.next
if node.next:
node.next.prev = node.prev
if node is self.head:
self.head = node.next
if node is self.tail:
self.tail = node.prev
# 遍历链表
def traverse(self):
current = self.head
while current:
print(current.data)
current = current.next
阅读全文