解题思路:
注意事项:
参考代码:
#include<stdio.h>
#include<stdlib.h>
#include<malloc.h>
typedef struct list{
int number,score;
struct list *next;
}node,*linklist;
linklist list_init_t(int x);
int count_list(linklist a);
linklist list_delet(linklist a,linklist b);
void list_printf(linklist a);
int main()
{
node *a_head,*b_head,*a_delet;
int n,m,k;
scanf("%d %d",&n,&m);
a_head = list_init_t(n);
b_head = list_init_t(m);
a_delet = list_delet(a_head,b_head);
k = count_list(a_delet);
printf("%d\n",k);
list_printf(a_delet);
return 0;
}
linklist list_init_t(int x)
{
node *head,*tail;
int i;
head = (node*)malloc(sizeof(node));
head->next = NULL;
tail = head;
for( i=0;i<x;i++)
{
node *p;
p = (node*)malloc(sizeof(node));
scanf("%d %d",&p->number,&p->score);
p->next = tail->next;
tail->next = p;
}
tail->next = NULL;
return head;
}
linklist list_delet(linklist a,linklist b)
{
node *pa,*pb,*pre;
int flag=0;
pre = a;
pa = a->next;
pb = b->next;
while(pa!=NULL)
{
while(pb!=NULL)
{
if(pa->number==pb->number)
{
pre->next = pa->next;
free(pa);
flag = 1;
break;
}
pb = pb->next;
}
pb = b->next;
if(flag==1)
{
flag = 0;
pa = pre->next;
pre = pre;
}
else
{
pa = pa->next;
pre = pre->next;
}
}
printf("----\n");
return pre;
}
int count_list(linklist a)
{
node *p;
int sum=0;
p = a->next;
while(p!=NULL)
{
sum++;
}
return sum;
}
void list_printf(linklist a)
{
node *p;
p = a->next;
while(p!=NULL)
{
printf("%d %d\n",p->number,p->score);
p = p->next;
}
printf("----\n");
}
0.0分
1 人评分
母牛的故事 (C语言代码)浏览:962 |
WU-输入输出格式练习 (C++代码)浏览:1090 |
校门外的树 (C语言代码)浏览:714 |
循环入门练习6 (C语言代码)浏览:988 |
2003年秋浙江省计算机等级考试二级C 编程题(1) (C语言代码)浏览:531 |
IP判断 (C语言代码)浏览:550 |
C语言程序设计教程(第三版)课后习题12.6 (C语言代码)浏览:665 |
C语言程序设计教程(第三版)课后习题7.5 (C语言代码)浏览:560 |
C语言程序设计教程(第三版)课后习题8.2 (C语言代码)浏览:1042 |
1250题解浏览:561 |