用链表管理学生信息。要求遍历链表,把所有学生的信息输出。学生信息包含姓名,学号和3门成绩
时间: 2024-02-22 07:55:53 浏览: 62
好的,这是一个关于链表的问题。下面是一个简单的实现,你可以参考一下:
```python
class Student:
def __init__(self, name, id, score1, score2, score3):
self.name = name
self.id = id
self.score1 = score1
self.score2 = score2
self.score3 = score3
self.next = None
class StudentList:
def __init__(self):
self.head = None
def add_student(self, name, id, score1, score2, score3):
new_student = Student(name, id, score1, score2, score3)
if self.head is None:
self.head = new_student
else:
current = self.head
while current.next is not None:
current = current.next
current.next = new_student
def print_students(self):
current = self.head
while current is not None:
print("Name: %s, ID: %s, Scores: %d %d %d" % (current.name, current.id, current.score1, current.score2, current.score3))
current = current.next
```
在这个实现中,我们定义了两个类:`Student` 和 `StudentList`。`Student` 类表示一个学生,包含姓名、学号和三门成绩,以及一个指向下一个节点的指针。`StudentList` 类表示整个链表,包含一个指向链表头的指针。
我们可以使用 `add_student()` 方法向链表中添加学生信息,使用 `print_students()` 方法遍历链表,输出所有学生的信息。
你可以按照以下步骤来测试这个实现:
```python
# 创建一个学生列表
students = StudentList()
# 添加一些学生信息
students.add_student("张三", "1001", 90, 85, 95)
students.add_student("李四", "1002", 80, 75, 85)
students.add_student("王五", "1003", 95, 90, 100)
# 输出所有学生信息
students.print_students()
```
输出结果应该是:
```
Name: 张三, ID: 1001, Scores: 90 85 95
Name: 李四, ID: 1002, Scores: 80 75 85
Name: 王五, ID: 1003, Scores: 95 90 100
```
阅读全文