请编写程序实现单链表插入、删除结点等基本算法。给定一个单链表和一系列插入、删除结点的操作序列,输出实施上述操作后的链表。单链表数据域值为整数。
时间: 2023-04-30 12:03:15 浏览: 107
C++中单链表的建立与基本操作
用 Python 实现单链表插入、删除结点等基本算法的示例代码如下:
```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, position):
new_node = Node(data)
if position == 0:
new_node.next = self.head
self.head = new_node
else:
curr_node = self.head
for i in range(position-1):
curr_node = curr_node.next
new_node.next = curr_node.next
curr_node.next = new_node
# 删除结点
def delete(self, position):
if self.head is None:
return
if position == 0:
self.head = self.head.next
else:
curr_node = self.head
for i in range(position-1):
curr_node = curr_node.next
curr_node.next = curr_node.next.next
# 遍历链表
def display(self):
curr_node = self.head
while curr_node is not None:
print(curr_node.data, end=' ')
curr_node = curr_node.next
# 示例操作
ll = LinkedList()
ll.insert(1, 0)
ll.insert(2, 1)
ll.insert(3, 2)
ll.insert(4, 3)
ll.delete(2)
ll.display() # 输出 1 2 4
```
需要注意的是,上述代码中的链表插入和删除结点操作都是从 0 开始编号。
这只是一个简单的示例代码,实际使用中可能需要根据需求进行修改。
阅读全文