为5个学生信息建立动态链表,每个学生包括 学号、姓名和分数 3种信息(要求这些信息能 从文件中导入),输入一个学号值删除列表中 该学号的学生节点。
时间: 2023-05-15 18:04:49 浏览: 140
学生信息建立采用链表结构
好的,这是一个关于动态链表的编程问题。以下是一个可能的实现:
```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 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 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(current.id, current.name, current.score)
current = current.next
```
你可以使用 load_from_file 方法从文件中导入学生信息,使用 add_student 方法添加学生节点,使用 remove_student 方法删除学生节点,使用 print_list 方法打印链表中的所有学生信息。例如:
```python
students = StudentList()
students.load_from_file('students.txt')
students.print_list()
students.remove_student('123')
students.print_list()
```
其中,students.txt 文件的内容可能如下:
```
123,张三,80
456,李四,90
789,王五,70
```
这个程序可以实现你的要求,同时也是一个比较基础的动态链表实现。如果你有更高级的需求,可以考虑使用其他数据结构或者算法来优化。
阅读全文