小甲鱼 P48 内存池---通讯录管理程序--单链表的应用

小甲鱼 P48 内存池---通讯录管理程序

 

小甲鱼 P45 单链表1---头插法

小甲鱼 P46 单链表2---尾插法和遍历

小甲鱼 P47 单链表3---单链表插入和删除

 

通讯录管理程序

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

struct Person
{
	char name[40];
	char phone[20];
	struct Person *next;	
};

void getInput(struct Person *person);
void printPerson(struct Person *person);
void addPerson(struct Person **contacts);
void changePerson(struct Person *contacts);
void delPerson(struct Person **contacts);
struct Person *findPerson(struct Person *contacts);
void displayContacts(struct Person *contacts);
void releaseContacts(struct Person **contacts);

void getInput(struct Person *person)
{
	printf("请输入姓名:");
	scanf("%s", person->name);
	printf("请输入电话:");
	scanf("%s", person->phone);
}

void addPerson(struct Person **contacts)
{
	struct Person *person;
	struct Person *temp;
	
	person = (struct Person *)malloc(sizeof(struct Person));
	if (person == NULL)
	{
		printf("内存分配失败!\n");
		exit(1);
	}
	
	getInput(person);
	
	// 将person用头插法添加到通讯录
	if (*contacts != NULL)
	{
		temp = *contacts;
		*contacts = person;
		person->next = temp;
	}
	else
	{
		*contacts = person;
		person->next = NULL;
	}
}

void printPerson(struct Person *person)
{
	printf("联系人:%s\n", person->name);
	printf("电话:%s\n", person->phone);
}

struct Person *findPerson(struct Person *contacts)
{
	struct Person *current;
	char input[40];
	
	printf("请输入联系人:");
	scanf("%s", input);
	
	
	current = contacts;
	while (current != NULL && strcmp(current->name, input))
	{
		current = current->next;
	}
	
	return current;
}

voi
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值