创建一个有6个结点的单向链表,实现增加、删除、查找、移动、显示结点的基本功能。
时间: 2023-10-20 11:19:47 浏览: 18
以下是基于Python语言实现的单向链表代码,包含增加、删除、查找、移动、显示结点的基本功能:
```python
class Node:
def __init__(self, data=None):
self.data = data
self.next = None
class LinkedList:
def __init__(self):
self.head = None
# 在链表尾部添加结点
def add_node(self, data):
new_node = Node(data)
if self.head is None:
self.head = new_node
else:
current = self.head
while current.next is not None:
current = current.next
current.next = new_node
# 删除指定数据的结点
def delete_node(self, data):
if self.head is None:
return
if self.head.data == data:
self.head = self.head.next
return
current = self.head
while current.next is not None:
if current.next.data == data:
current.next = current.next.next
return
current = current.next
# 查找指定数据的结点
def find_node(self, data):
if self.head is None:
return None
current = self.head
while current is not None:
if current.data == data:
return current
current = current.next
return None
# 移动指定数据的结点到链表头部
def move_node_to_head(self, data):
node = self.find_node(data)
if node is None or node == self.head:
return
current = self.head
while current.next != node:
current = current.next
current.next = node.next
node.next = self.head
self.head = node
# 显示链表中的所有结点
def display_nodes(self):
current = self.head
while current is not None:
print(current.data, end=" ")
current = current.next
print()
```
现在可以创建一个带有6个结点的单向链表并测试它的基本功能:
```python
linked_list = LinkedList()
# 在链表尾部添加结点
linked_list.add_node(1)
linked_list.add_node(2)
linked_list.add_node(3)
linked_list.add_node(4)
linked_list.add_node(5)
linked_list.add_node(6)
# 显示链表中的所有结点
linked_list.display_nodes() # 1 2 3 4 5 6
# 删除指定数据的结点
linked_list.delete_node(3)
# 显示链表中的所有结点
linked_list.display_nodes() # 1 2 4 5 6
# 查找指定数据的结点
node = linked_list.find_node(4)
print(node.data) # 4
# 移动指定数据的结点到链表头部
linked_list.move_node_to_head(4)
# 显示链表中的所有结点
linked_list.display_nodes() # 4 1 2 5 6
```