c语言链表实现通讯录管理系统(完整版)

通讯录管理系统是链表的常用应用,也是我们必须要掌握的一个用链表实现的小项目制作。
下面来看代码

#include <stdio.h>
#include <stdlib.h>
typedef struct  //定义每个人员信息结构体 
{
   
	char num[5]; //编号 
	char name[9];//姓名 
	char sex[3]; //性别 
	char phone[13]; //电话 
	char addr[31]; //地址 
 }DataType;
 typedef struct node  //定义链表类型 
 {
   
 	DataType data; //数据域 
 	struct node *next; //指针域 
  }ListNode;
typedef ListNode *LinkList;
void CreateList(LinkList &L,int m)//通讯录链表的建立 
{
    int i;
  LinkList s,r;
  L=(LinkList)malloc(sizeof(ListNode));
  L->next=NULL;
  r=L; //尾节点 

  for(i=0;i<m;i++)
  {
     s=(LinkList)malloc(sizeof(ListNode)); //新建的节点 
     printf("输入第%d位编号:",i+1);
     scanf("%s",&s->data.num);
     printf("\n输入姓名:");
     scanf("%s",&s->data.name);
     printf("\n输入性别:");
     scanf("%s",&s->data.sex);
     
  • 42
    点赞
  • 347
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 18
    评论
C语言链表是一种数据结构,常用于实现通讯录管理系统,因为它可以动态地存储和管理联系人信息。以下是一个简单的C语言链表通讯录管理系统的概述: 1. **节点定义**:链表由一个个节点组成,每个节点包含联系人的姓名、电话号码或电子邮件等基本信息,以及一个指向下一个节点的指针。 ```c typedef struct Contact { char name[50]; char phone[20]; char email[50]; struct Contact* next; } Contact; ``` 2. **链表初始化**:创建一个链表头部指针,并初始化第一个节点。 ```c Contact* head = NULL; void addContact(Contact* &head, char* name, char* phone, char* email) { Contact* newNode = (Contact*)malloc(sizeof(Contact)); newNode->name = name; newNode->phone = phone; newNode->email = email; newNode->next = head; head = newNode; } ``` 3. **添加联系人**:函数用来向链表中添加新的联系人。 4. **查找联系人**:通过遍历链表,根据姓名或电话号码搜索特定的联系人。 ```c Contact* searchByName(Contact* head, char* name) { Contact* current = head; while (current != NULL) { if (strcmp(current->name, name) == 0) { return current; } current = current->next; } return NULL; } ``` 5. **删除联系人**:根据需要提供删除节点的函数,可能需要更新相邻节点的指针。 6. **遍历显示**:打印整个通讯录或显示某个联系人信息。 7. **内存管理**:记得释放不再使用的节点内存,防止内存泄漏。
评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

乔梦圆的博客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值