建立某班学生的通讯录,要求用链表存储。具体功能包括: (1)可以实现插入一个同学的通讯录记录(2)能够删除某位同学的通讯录; (3)对通讯录打印输出。
时间: 2024-10-18 22:10:55 浏览: 27
数据结构-通讯录管理
建立一个使用链表存储的学生通讯录系统,可以按照以下步骤设计:
1. **节点定义**:首先,创建一个学生节点(Node)类,包含字段如姓名(name)、电话号码(phone_number)以及指向下一个同学的指针(next)。
```python
class StudentNode:
def __init__(self, name, phone_number):
self.name = name
self.phone_number = phone_number
self.next = None
```
2. **链表结构**:定义一个链表类(StudentList),初始化时设置头节点为空。
```python
class StudentList:
def __init__(self):
self.head = None
```
3. **插入操作**:添加一个`add_student`方法,用于在链表尾部插入新的学生节点。
```python
def add_student(self, name, phone_number):
new_node = StudentNode(name, phone_number)
if not self.head:
self.head = new_node
else:
current = self.head
while current.next:
current = current.next
current.next = new_node
```
4. **删除操作**:添加一个`delete_student`方法,查找并移除指定姓名的同学节点。
```python
def delete_student(self, name):
if not self.head:
return
if self.head.name == name:
self.head = self.head.next
return
current = self.head
while current.next and current.next.name != name:
current = current.next
if current.next:
current.next = current.next.next
```
5. **打印输出**:添加一个`print_students`方法,遍历链表并打印每个同学的信息。
```python
def print_students(self):
current = self.head
while current:
print(f"姓名:{current.name}, 电话号码:{current.phone_number}")
current = current.next
```
使用这个结构,你可以方便地插入、删除和查询学生信息。例如:
```python
student_list = StudentList()
student_list.add_student("张三", "1234567890")
student_list.add_student("李四", "9876543210")
student_list.print_students()
student_list.delete_student("张三")
student_list.print_students()
```
阅读全文