🐵指尖猴全新升级
第12课:单元实战:通讯录
📖

单元实战:通讯录

链表实战首秀,造一个能增能删的通讯录!

📖知识引入

📇需求分析
支持添加联系人、按姓名删除、展示全部,链表天生适合频繁增删
🧩节点设计
数据域换成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课完成!继续探索下一课吧 🚀