c++用单链表的方式实现删除成绩不合格的同学成绩
时间: 2023-05-31 09:02:33 浏览: 57
假设单链表的每个节点包含学生的姓名和成绩。
1. 遍历单链表,找到所有成绩不合格的节点。
2. 从单链表中删除这些节点。
代码实现:
```python
class Node:
def __init__(self, name, score):
self.name = name
self.score = score
self.next = None
def delete_unqualified(head):
# 遍历单链表,找到所有成绩不合格的节点
prev_node = None
curr_node = head
while curr_node is not None:
if curr_node.score < 60:
# 从单链表中删除这个节点
if prev_node is None:
head = curr_node.next
else:
prev_node.next = curr_node.next
else:
prev_node = curr_node
curr_node = curr_node.next
return head
# 测试代码
head = Node('Alice', 80)
node1 = Node('Bob', 90)
node2 = Node('Charlie', 55)
node3 = Node('David', 70)
node4 = Node('Eve', 40)
head.next = node1
node1.next = node2
node2.next = node3
node3.next = node4
head = delete_unqualified(head)
curr_node = head
while curr_node is not None:
print(curr_node.name, curr_node.score)
curr_node = curr_node.next
```
输出结果:
```
Alice 80
Bob 90
David 70
```