第12课:单元实战:通讯录
进度 0/24
📖
单元实战:通讯录
链表实战首秀,造一个能增能删的通讯录!
📖知识引入
📇需求分析
支持添加联系人、按姓名删除、展示全部,链表天生适合频繁增删
🧩节点设计
数据域换成string name和long long phone,一个节点装一个人的信息
🔁遍历输出
从head顺着next走到底,逐个打印联系人,走到nullptr就收工
🔍查找删除
边遍历边比对姓名,找到目标就跨线接续摘掉它
💡
姓名比对用 name == target,string类型可直接用==判断相等,别手写逐字符比较
🔍通讯录核心代码
struct Contact {
string name;
string phone;
Contact* next;
};
Contact* head = nullptr;
// 头插法添加联系人
void add(string name, string phone) {
Contact* c = new Contact{name, phone, head};
head = c;
}
// 遍历输出全部联系人
for (Contact* p = head; p != nullptr; p = p->next) {
cout << p->name << " " << p->phone << endl;
}头插一行添加、遍历一遍展示,链表通讯录骨架就此成型
🎯小测验
第1题:通讯录节点数据域最适合存什么?
第2题:遍历链表的循环条件通常是?
第3题:为什么通讯录适合用链表?
📝本课知识点
- ✓struct让节点装下多条信息
- ✓头插法添加最方便
- ✓遍历终点是nullptr
第12课完成!继续探索下一课吧 🚀
