编程实现单向链表建立、删除、插入、输出
时间: 2023-09-23 12:04:38 浏览: 38
以下是Python语言的单向链表的基本操作实现:
```python
# 节点类
class Node:
def __init__(self, data):
self.data = data
self.next = None
# 链表类
class LinkedList:
def __init__(self):
self.head = None
# 在链表末尾添加节点
def append(self, data):
new_node = Node(data)
if not self.head:
self.head = new_node
return
current_node = self.head
while current_node.next:
current_node = current_node.next
current_node.next = new_node
# 在链表头添加节点
def prepend(self, data):
new_node = Node(data)
new_node.next = self.head
self.head = new_node
# 删除指定值的节点
def delete(self, data):
if not self.head:
return
if self.head.data == data:
self.head = self.head.next
return
current_node = self.head
while current_node.next:
if current_node.next.data == data:
current_node.next = current_node.next.next
return
current_node = current_node.next
# 在指定位置插入节点
def insert(self, data, position):
if position == 0:
self.prepend(data)
return
new_node = Node(data)
current_node = self.head
for i in range(position-1):
current_node = current_node.next
new_node.next = current_node.next
current_node.next = new_node
# 输出链表
def print_list(self):
current_node = self.head
while current_node:
print(current_node.data, end=' ')
current_node = current_node.next
print()
```
使用示例:
```python
# 创建链表
my_list = LinkedList()
# 在链表末尾添加节点
my_list.append(1)
my_list.append(2)
my_list.append(3)
my_list.print_list() # 1 2 3
# 在链表头添加节点
my_list.prepend(0)
my_list.print_list() # 0 1 2 3
# 在指定位置插入节点
my_list.insert(4, 3)
my_list.print_list() # 0 1 2 4 3
# 删除指定值的节点
my_list.delete(2)
my_list.print_list() # 0 1 4 3
```