链式表的插入删除合并的完整代码
时间: 2024-05-04 22:18:54 浏览: 68
链表的插入删除
链式表的插入、删除、合并的完整代码如下:
```python
class Node:
def __init__(self, data):
self.data = data
self.next = None
class LinkedList:
def __init__(self):
self.head = None
# 插入操作
def insert(self, data):
new_node = Node(data)
if self.head is None:
self.head = new_node
return
cur_node = self.head
while cur_node.next is not None:
cur_node = cur_node.next
cur_node.next = new_node
# 删除操作
def delete(self, data):
if self.head is None:
return
if self.head.data == data:
self.head = self.head.next
return
cur_node = self.head
while cur_node.next is not None:
if cur_node.next.data == data:
cur_node.next = cur_node.next.next
return
cur_node = cur_node.next
# 合并操作
def merge(self, other):
if self.head is None:
self.head = other.head
return
cur_node = self.head
while cur_node.next is not None:
cur_node = cur_node.next
cur_node.next = other.head
# 打印链表
def print_list(self):
cur_node = self.head
while cur_node is not None:
print(cur_node.data, end=' ')
cur_node = cur_node.next
print()
# 测试代码
if __name__ == '__main__':
# 创建链表1: 1 -> 2 -> 3 -> 4
ll1 = LinkedList()
ll1.insert(1)
ll1.insert(2)
ll1.insert(3)
ll1.insert(4)
# 创建链表2: 5 -> 6 -> 7
ll2 = LinkedList()
ll2.insert(5)
ll2.insert(6)
ll2.insert(7)
# 插入操作测试
ll1.insert(5)
ll1.insert(6)
ll1.print_list() # 1 2 3 4 5 6
# 删除操作测试
ll1.delete(3)
ll1.delete(1)
ll1.print_list() # 2 4 5 6
# 合并操作测试
ll1.merge(ll2)
ll1.print_list() # 2 4 5 6 5 6 7
```
在上面的代码中,`Node` 类表示链表中的节点,`LinkedList` 类表示链表。其中,`insert` 方法用于向链表中插入元素,`delete` 方法用于删除链表中的元素,`merge` 方法用于将另一个链表合并到当前链表中,`print_list` 方法用于打印链表。在测试代码中,我们创建了两个链表,并对它们进行了插入、删除、合并等操作,最后打印了链表。
阅读全文