假设你要写一个实验,是关于线性顺序表的,其中包括学生姓名,学号,班级,性别请写出完整代码
时间: 2024-09-30 09:10:23 浏览: 25
这是一个基本的学生信息管理系统,使用Python实现一个简单线性顺序表(链表)来存储学生信息。每个学生信息将封装在一个`Student`类中,然后通过链表的方式存储。
```python
class Student:
def __init__(self, name, id, class_name, gender):
self.name = name
self.id = id
self.class_name = class_name
self.gender = gender
self.next = None
class LinkedList:
def __init__(self):
self.head = None
# 添加学生
def add_student(self, student):
if not self.head:
self.head = student
else:
current = self.head
while current.next:
current = current.next
current.next = student
# 删除学生
def remove_student(self, id):
if not self.head:
return
if self.head.id == id:
self.head = self.head.next
return
current = self.head
while current.next and current.next.id != id:
current = current.next
if current.next:
current.next = current.next.next
# 查找学生
def find_student(self, id):
current = self.head
while current:
if current.id == id:
return current
current = current.next
return None
# 打印所有学生信息
def display_students(self):
current = self.head
while current:
print(f"姓名:{current.name}, 学号:{current.id}, 班级:{current.class_name}, 性别:{current.gender}")
current = current.next
# 示例
students_list = LinkedList()
student1 = Student("张三", 1001, "一班", "男")
students_list.add_student(student1)
student2 = Student("李四", 1002, "二班", "女")
students_list.add_student(student2)
# 显示所有学生
students_list.display_students()
# 删除学号为1001的学生
students_list.remove_student(1001)
# 再次显示学生信息
students_list.display_students()
```
在这个例子中,我们首先创建了`Student`类表示每个学生,并在`LinkedList`类中实现了添加、删除和查找学生的方法。注意这只是一个最基础的实现,实际应用可能会更复杂,如添加错误检查和更高效的搜索算法。
阅读全文