建立某班学生的通讯录,要求用链表存储。 具体功能包括: (1)可以实现插入一个同学的通讯录记录; (2)能够删除某位同学的通讯录; (3)对通讯录打印输出。
时间: 2024-11-12 15:43:48 浏览: 9
用数据结构-链表实现通讯录管理系统
5星 · 资源好评率100%
建立学生通讯录的数据结构通常会使用链表来实现,因为链表支持动态添加和删除元素,适合处理频繁的增删操作。以下是针对这个需求的一个简单设计:
**链表节点(StudentNode)**:
```cpp
struct StudentNode {
string name;
string phone_number; // 学生电话号码
StudentNode* next; // 指向下一个同学的指针
};
```
**通讯录(ContactList)**:
```cpp
class ContactList {
private:
StudentNode* head;
public:
// 构造函数
ContactList() : head(nullptr) {}
// 插入新同学
void insertStudent(string name, string phoneNumber) {
StudentNode* newNode = new StudentNode();
newNode->name = name;
newNode->phone_number = phoneNumber;
newNode->next = head;
head = newNode;
}
// 删除指定同学
void deleteStudentByName(string name) {
if (head == nullptr) return;
if (head->name == name) {
StudentNode* temp = head;
head = head->next;
delete temp;
return;
}
StudentNode* current = head;
while (current->next != nullptr && current->next->name != name) {
current = current->next;
}
if (current->next != nullptr) {
current->next = current->next->next;
delete current->next;
}
}
// 打印通讯录
void printContactList() {
StudentNode* temp = head;
while (temp != nullptr) {
cout << "姓名: " << temp->name << ", 电话: " << temp->phone_number << endl;
temp = temp->next;
}
}
// 可能的其他辅助方法
~ContactList(); // 销毁链表时记得释放内存
};
```
在这个设计中,`insertStudent`、`deleteStudentByName`和`printContactList`分别实现了上述的功能需求。当你需要增加新的学生信息,使用`insertStudent`;想删除某个学生,调用`deleteStudentByName`并传入学生名字;要查看整个通讯录,就调用`printContactList`。
阅读全文