C++链式存储通讯录管理系统代码的详细注释和解析
时间: 2024-09-27 20:08:25 浏览: 35
C++链式存储的通讯录管理系统通常会使用结构体或类来表示联系人,每个节点包含姓名、电话号码等信息,并通过指针相连形成链表。下面是一个简单的例子,我将给出关键部分的代码以及注释:
```cpp
// 定义一个Contact节点,包含了姓名和电话号码
class Contact {
public:
std::string name;
std::string phoneNumber;
// 使用指向下一个节点的指针
Contact* next;
// 构造函数
Contact(const std::string& n, const std::string& p) : name(n), phoneNumber(p), next(nullptr) {}
};
// 创建通讯录类,管理链表
class AddressBook {
private:
Contact* head; // 链表头节点
public:
// 添加联系人到链表尾部
void addContact(const std::string& name, const std::string& phone) {
Contact* newNode = new Contact(name, phone);
if (head == nullptr) { // 如果链表为空,设置头节点
head = newNode;
} else {
Contact* current = head;
while (current->next != nullptr) {
current = current->next;
}
current->next = newNode;
}
}
// 查找指定名称的联系人
Contact* findContactByName(const std::string& name) {
Contact* current = head;
while (current != nullptr) {
if (current->name == name) {
return current;
}
current = current->next;
}
return nullptr; // 如果未找到,返回nullptr
}
// 删除指定名称的联系人
bool removeContactByName(const std::string& name) {
if (head == nullptr || head->name != name) {
return false; // 联系人不存在
}
Contact* temp = head;
head = head->next;
delete temp; // 释放已找到的节点内存
return true;
}
};
```
阅读全文