数据结构2019考研真题应用题

更新时间:2025-10-09 23:31:57
最佳答案

在2019年的考研数据结构真题中,一道典型的应用题可能如下:

题目:设计一个基于链表的简单学生信息管理系统,实现以下功能:
1. 添加学生信息:包括姓名、学号、年龄、性别等。
2. 删除学生信息:根据学号删除学生信息。
3. 查询学生信息:根据姓名或学号查询学生信息。
4. 显示所有学生信息:遍历链表显示所有学生信息。

要求:
- 使用单链表实现;
- 确保代码的可读性和可维护性;
- 提供清晰的注释。

解答:
```python
class Student:
def __init__(self, name, student_id, age, gender):
self.name = name
self.student_id = student_id
self.age = age
self.gender = gender
self.next = None

class StudentLinkedList:
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 delete_student(self, student_id):
current = self.head
prev = None
while current:
if current.student_id == student_id:
if prev:
prev.next = current.next
else:
self.head = current.next
return True
prev = current
current = current.next
return False

def search_student(self, query):
current = self.head
while current:
if current.name == query or current.student_id == query:
return current
current = current.next
return None

def display_students(self):
current = self.head
while current:
print(f"Name: {current.name}, ID: {current.student_id}, Age: {current.age}, Gender: {current.gender}")
current = current.next

使用示例
student_list = StudentLinkedList()
student_list.add_student(Student("Alice", "S001", 20, "Female"))
student_list.add_student(Student("Bob", "S002", 21, "Male"))
student_list.display_students()
student_list.delete_student("S002")
student_list.display_students()
student_info = student_list.search_student("Alice")
print(f"Found student: {student_info.name}, ID: {student_info.student_id}")
```

微信小程序:【考研刷题通】——助你高效备考,政治、英语、数学等全部考研科目刷题神器,随时随地,轻松掌握知识点!立即下载,开启你的考研刷题之旅!

相关推荐
CopyRight © 2020-2025 考研百科 |网站地图 All rights reserved. 桂ICP备2023005595号-21 站务邮箱:newmikke@163.com

页面耗时0.0252秒, 内存占用1.63 MB, 访问数据库13次