5个学生信息建立动态链表,每个学生包括学号、姓名和分数 3种信息(要求这些信息能从文件中导入),输入一个学号值删除列表中该学号的学生节点
时间: 2023-05-18 15:05:59 浏览: 78
可以使用以下代码实现:
```python
class Student:
def __init__(self, id, name, score):
self.id = id
self.name = name
self.score = score
self.next = None
class StudentList:
def __init__(self):
self.head = None
def add_student(self, id, name, score):
student = Student(id, name, score)
if self.head is None:
self.head = student
else:
current = self.head
while current.next is not None:
current = current.next
current.next = student
def remove_student(self, id):
if self.head is None:
return
if self.head.id == id:
self.head = self.head.next
return
current = self.head
while current.next is not None:
if current.next.id == id:
current.next = current.next.next
return
current = current.next
def print_list(self):
current = self.head
while current is not None:
print("ID: {}, Name: {}, Score: {}".format(current.id, current.name, current.score))
current = current.next
def load_from_file(self, filename):
with open(filename, "r") as f:
for line in f:
id, name, score = line.strip().split(",")
self.add_student(id, name, score)
def save_to_file(self, filename):
with open(filename, "w") as f:
current = self.head
while current is not None:
f.write("{},{},{}\n".format(current.id, current.name, current.score))
current = current.next
# Example usage
students = StudentList()
students.load_from_file("students.txt")
students.remove_student("123")
students.print_list()
students.save_to_file("students.txt")
```
其中,`Student` 类表示一个学生,包括学号、姓名和分数三个属性,以及一个指向下一个学生的指针。`StudentList` 类表示一个学生列表,包括一个头指针,以及添加、删除、打印和从文件中导入/导出学生信息的方法。在 `load_from_file` 方法中,我们从文件中读取每一行学生信息,然后调用 `add_student` 方法将其添加到链表中。在 `remove_student` 方法中,我们遍历链表,找到要删除的学生节点,然后将其从链表中移除。最后,我们可以调用 `print_list` 方法打印链表中所有学生的信息,或者调用 `save_to_file` 方法将链表中的学生信息保存到文件中。