用如下定义的结构体 Person 表示人员信息,分别用以 Person 为结点的链表 a 和 b 输 入若干人员的信息,以人员证件号输入字符串“0”表示输入结束。从链表 a 中删除与链 表 b 中证件号相同的结点; struct Person{ char ID[18]; //人员证件号 char name[20]; struct Person* next;} (1)struct Person * create() //创建动态的单向链表 (2)struct Person * del (struct Person *aHead, struct Person *bHead) //在链表 aHead 中删除与链表 bHead 中有相同身份证号码的结点。
时间: 2023-02-06 20:24:29 浏览: 49
以下是 C 语言代码实现:
(1) 创建动态的单向链表
struct Person * create()
{
struct Person *head = NULL;
struct Person *p = NULL;
char ID[18];
printf("请输入人员信息(输入 0 结束):\n");
scanf("%s", ID);
while (strcmp(ID, "0") != 0)
{
p = (struct Person *)malloc(sizeof(struct Person));
if (p == NULL)
{
printf("内存分配失败!\n");
exit(1);
}
strcpy(p->ID, ID);
printf("请输入姓名:");
scanf("%s", p->name);
p->next = head;
head = p;
printf("请输入人员信息(输入 0 结束):\n");
scanf("%s", ID);
}
return head;
}
(2) 在链表 aHead 中删除与链表 bHead 中有相同身份证号码的结点
struct Person * del(struct Person *aHead, struct Person *bHead)
{
struct Person *p = aHead;
struct Person *q = NULL;
struct Person *b = bHead;
while (b != NULL)
{
while (p != NULL && strcmp(p->ID, b->ID) != 0)
{
q = p;
p = p->next;
}
if (p != NULL)
{
if (p == aHead)
{
aHead = p->next;
}
else
{
q->next = p->next;
}
free(p);
p = q->next;
}
b = b->next;
}
return aHead;
}
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![c](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)