使用链表实现通讯录管理

需积分: 34 0 下载量 197 浏览量 更新于2024-09-07 收藏 128KB PDF 举报
"创建一个通讯录(链表).pdf" 这篇PDF文件提供了一个使用链表数据结构创建通讯录的示例。通讯录是存储个人联系信息(如姓名、ID和电话号码)的一种数据结构,这里使用链表来实现,因为链表允许动态地添加、删除和查找记录,适合于这种需求。 首先,`typedef struct Stu`定义了一个名为`stud`的结构体,它包含了以下字段: - `long long id`: 学生ID,使用`long long`类型以确保能存储11位数字的ID。 - `char name[10]`: 学生姓名,用字符数组存储,大小为10,可以存储9个汉字或字母加上一个结束符。 - `long long tel`: 学生电话号码,同样使用`long long`来存储长电话号码。 - `struct Stu* next`: 链接下一个`stud`结构体的指针,用于构建链表。 接着,`FILE* fp`是文件指针,用于后续对文件的操作,如读取和写入通讯录数据。 `void CreLi(stud*& s)`函数创建链表。它接收一个链表头指针,并通过`malloc`分配内存初始化链表。 `void Loading(stud*& s, long long ID, char* Name, long long Tel)`函数用于向链表中添加新的联系人。首先,它找到链表的末尾,然后创建一个新的节点,填充输入的ID、姓名和电话号码,并将其连接到链表的末尾。 `bool DeLi(stud*& s, long long ID)`函数实现了删除特定ID的联系人记录。它通过遍历链表找到目标ID的节点,然后修改前一个节点的`next`指针来删除目标节点。 此外,虽然PDF文件没有提供完整的代码,但根据给出的部分,我们可以推测可能还会有其他功能,如打印链表中的所有联系人信息、搜索特定联系人、保存链表到文件以及从文件加载链表等。这些功能通常会涉及到文件I/O操作和链表的遍历。 总结来说,这个PDF文件提供了一个基于链表的通讯录实现,包括创建链表、添加联系人和删除联系人等基本操作。使用链表作为数据结构允许灵活地管理联系人记录,而无需预先知道记录的数量。