使用链表完成对身边某项数据的管理。例如同学的成绩。 要求实现四个函数,分别用于增删改查。
时间: 2023-03-21 17:00:40 浏览: 48
好的,以下是使用链表实现对同学成绩管理的四个函数:
1. 增加成绩函数:
```
def add_score(head, score):
new_node = Node(score)
if head is None:
head = new_node
else:
current_node = head
while current_node.next is not None:
current_node = current_node.next
current_node.next = new_node
return head
```
这个函数接收一个链表头节点和一个要增加的成绩值作为参数,创建一个新的节点并将其添加到链表的末尾。
2. 删除成绩函数:
```
def delete_score(head, score):
if head is None:
return None
elif head.data == score:
return head.next
else:
current_node = head
while current_node.next is not None:
if current_node.next.data == score:
current_node.next = current_node.next.next
return head
current_node = current_node.next
return head
```
这个函数接收一个链表头节点和一个要删除的成绩值作为参数,从链表中删除包含该值的节点。
3. 修改成绩函数:
```
def modify_score(head, old_score, new_score):
current_node = head
while current_node is not None:
if current_node.data == old_score:
current_node.data = new_score
return head
current_node = current_node.next
return head
```
这个函数接收一个链表头节点、要修改的成绩值和新的成绩值作为参数,将链表中包含旧值的节点的数据修改为新值。
4. 查询成绩函数:
```
def search_score(head, score):
current_node = head
while current_node is not None:
if current_node.data == score:
return True
current_node = current_node.next
return False
```
这个函数接收一个链表头节点和要查询的成绩值作为参数,查找链表中是否有包含该值的节点。如果找到了,返回 True,否则返回 False。