学生成绩管理系统线性链表
时间: 2024-12-30 20:33:10 浏览: 7
### 使用线性链表实现学生成绩管理系统的教程
#### 创建节点类
为了构建链表,首先定义一个 `Node` 类来表示单个节点。每个节点保存学生的成绩信息以及指向下一个节点的指针。
```python
class Node:
def __init__(self, student_id=None, score=None, next_node=None):
self.student_id = student_id # 学生ID
self.score = score # 成绩
self.next_node = next_node # 下一节点引用
```
#### 构建链表操作函数
接下来创建一些基本的操作方法,比如插入新记录、遍历显示所有记录等。
##### 插入新的成绩条目
此功能允许向链表头部添加一个新的成绩条目:
```python
def insert_at_beginning(head_ref, new_student_id, new_score):
"""在链表开头插入新结点"""
new_node = Node(new_student_id, new_score)
new_node.next_node = head_ref
head_ref = new_node
return head_ref
```
##### 删除指定的学生记录
提供删除特定学生记录的功能也很重要:
```python
def delete_by_id(head_ref, target_id):
"""按学生ID删除结点"""
current = head_ref
prev = None
while (current is not None and current.student_id != target_id):
prev = current
current = current.next_node
if current == None:
print(f"未找到ID为 {target_id} 的学生")
return head_ref
if prev == None:
head_ref = current.next_node
else:
prev.next_node = current.next_node
del current
return head_ref
```
##### 显示全部成绩列表
最后编写一个简单的打印函数用来展示当前所有的成绩数据:
```python
def display_scores(head):
"""遍历并打印链表中的所有元素"""
temp = head
while(temp):
print(f"Student ID: {temp.student_id}, Score: {temp.score}")
temp = temp.next_node
```
通过上述代码片段展示了如何利用Python语言特性建立基于线性链表的成绩管理系统框架[^1]。
阅读全文