python动态链表例子
时间: 2023-11-15 16:01:57 浏览: 27
下面是一个使用Python实现动态链表的例子:
```python
class Node:
def __init__(self, data=None):
self.data = data
self.next = None
class LinkedList:
def __init__(self):
self.head = None
def append(self, data):
new_node = Node(data)
if self.head is None:
self.head = new_node
return
last_node = self.head
while last_node.next:
last_node = last_node.next
last_node.next = new_node
def prepend(self, data):
new_node = Node(data)
new_node.next = self.head
self.head = new_node
def insert_after_node(self, prev_node, data):
if not prev_node:
print("Previous node is not in the list")
return
new_node = Node(data)
new_node.next = prev_node.next
prev_node.next = new_node
def delete_node(self, key):
cur_node = self.head
if cur_node and cur_node.data == key:
self.head = cur_node.next
cur_node = None
return
prev = None
while cur_node and cur_node.data != key:
prev = cur_node
cur_node = cur_node.next
if cur_node is None:
return
prev.next = cur_node.next
cur_node = None
def print_list(self):
cur_node = self.head
while cur_node:
print(cur_node.data)
cur_node = cur_node.next
```
这个例子中,我们定义了一个Node类来表示链表中的节点,每个节点包含一个数据项和一个指向下一个节点的指针。然后我们定义了一个LinkedList类来表示整个链表,其中包含了一些常见的链表操作,如添加节点、删除节点、插入节点等。这个例子中的链表是动态的,因为它可以根据需要增加或删除节点。