c++ 手机通讯录使用链表
时间: 2023-08-14 20:37:22 浏览: 80
下面是一个简单的C++代码,用于实现手机通讯录的链表:
```c++
#include <iostream>
#include <string>
using namespace std;
// 联系人结构体
struct Contact {
string name;
string phone;
Contact* next;
};
// 添加联系人
void addContact(Contact* &head, string name, string phone) {
Contact* newContact = new Contact;
newContact->name = name;
newContact->phone = phone;
newContact->next = NULL;
if (head == NULL) {
head = newContact;
} else {
Contact* ptr = head;
while (ptr->next != NULL) {
ptr = ptr->next;
}
ptr->next = newContact;
}
}
// 删除联系人
void deleteContact(Contact* &head, string name) {
Contact* ptr = head;
Contact* prev = NULL;
while (ptr != NULL) {
if (ptr->name == name) {
if (prev == NULL) {
head = ptr->next;
} else {
prev->next = ptr->next;
}
delete ptr;
break;
}
prev = ptr;
ptr = ptr->next;
}
}
// 显示所有联系人
void showAllContacts(Contact* head) {
Contact* ptr = head;
cout << "所有联系人:" << endl;
while (ptr != NULL) {
cout << "姓名:" << ptr->name << " 电话:" << ptr->phone << endl;
ptr = ptr->next;
}
}
// 查找联系人
void searchContact(Contact* head, string name) {
Contact* ptr = head;
while (ptr != NULL) {
if (ptr->name == name) {
cout << "姓名:" << ptr->name << " 电话:" << ptr->phone << endl;
break;
}
ptr = ptr->next;
}
if (ptr == NULL) {
cout << "未找到联系人" << endl;
}
}
int main() {
Contact* head = NULL;
// 添加联系人
addContact(head, "张三", "123456");
addContact(head, "李四", "456789");
addContact(head, "王五", "789123");
// 显示所有联系人
showAllContacts(head);
// 删除联系人
deleteContact(head, "李四");
// 显示所有联系人
showAllContacts(head);
// 查找联系人
searchContact(head, "张三");
return 0;
}
```
在这个示例代码中,我们定义了一个Contact结构体,其中包含了联系人的姓名、电话和下一个联系人的指针。我们使用addContact()函数向通讯录中添加联系人,使用deleteContact()函数删除联系人,使用showAllContacts()函数显示所有联系人,使用searchContact()函数查找指定联系人。我们使用一个指针head来指向通讯录的第一个联系人。
阅读全文