在Python中实现双向链表,你需要定义一个节点类和一个链表类。节点类包含数据和两个指针,分别指向前一个节点和后一个节点。链表类包含头节点,并提供一系列操作链表的方法,如检查链表是否为空、获取链表长度、遍历链表、在头部添加元素、在尾部添加元素等。
下面是一个简单的双向链表实现示例:
```python
class Node:
def __init__(self, data):
self.data = data
self.next = None
self.prev = None
class DoublyLinkedList:
def __init__(self):
self.head = None
def is_empty(self):
return self.head is None
def length(self):
count = 0
current = self.head
while current is not None:
count += 1
current = current.next
return count
def travel(self):
elements = []
current = self.head
while current is not None:
elements.append(current.data)
current = current.next
return elements
def add(self, data):
new_node = Node(data)
if self.is_empty():
self.head = new_node
else:
new_node.next = self.head
self.head.prev = new_node
self.head = new_node
def append(self, data):
new_node = Node(data)
if self.is_empty():
self.head = new_node
else:
current = self.head
while current.next is not None:
current = current.next
current.next = new_node
new_node.prev = current
使用示例
dll = DoublyLinkedList()
dll.add(1)
dll.add(2)
dll.add(3)
print(dll.travel()) 输出: [1, 2, 3]
这个例子展示了如何创建一个双向链表,添加元素,并遍历链表中的所有元素。你可以根据需要扩展这个基本实现,添加更多的链表操作方法,如删除节点、查找节点等