使用单链表完成如下任务:建立一个如下的学生情况表,要求先依次输入学生数据元素,然后依次显示当前表中的学生数据元素。
时间: 2024-10-13 14:04:33 浏览: 24
在使用单链表完成这个任务时,我们可以按照以下步骤进行:
1. **创建节点结构**:
首先,定义一个`Node`类表示链表中的一个节点,包含学生的属性(例如学号、姓名、成绩等),以及指向下一个节点的引用。
```python
class Node:
def __init__(self, student_id, name, score):
self.student_id = student_id
self.name = name
self.score = score
self.next = None
```
2. **创建链表结构**:
然后,创建一个`StudentList`类,它有一个头节点`head`,用于存储链表的第一个元素。
```python
class StudentList:
def __init__(self):
self.head = None
```
3. **添加学生数据**:
提供一个方法`add_student`,用于输入新学生的数据并将其添加到链表尾部。
```python
def add_student(self):
new_node = Node(input("请输入学号: "), input("请输入姓名: "), int(input("请输入成绩: ")))
if not self.head:
self.head = new_node
else:
current_node = self.head
while current_node.next:
current_node = current_node.next
current_node.next = new_node
```
4. **显示学生数据**:
创建一个方法`display_students`,遍历链表并打印每个学生的数据。
```python
def display_students(self):
current_node = self.head
while current_node:
print(f"学号: {current_node.student_id}, 姓名: {current_node.name}, 成绩: {current_node.score}")
current_node = current_node.next
```
5. **主程序**:
最后,在主函数中交互地接受用户输入,创建`StudentList`实例,并进行操作。
```python
def main():
student_list = StudentList()
while True:
user_choice = input("你想添加学生还是查看学生信息?(a/d) ")
if user_choice == 'a':
student_list.add_student()
elif user_choice == 'd':
student_list.display_students()
else:
print("无效选择,请再试一次.")
if __name__ == "__main__":
main()
```
阅读全文