解题思路:暴力解决
注意事项:边界的处理
参考代码:
#include<stdio.h>
#include<stdlib.h>
typedef struct node{
int data,n;
struct node *next,*ptr;
}node;
node* creadlist(int n){
node *head,*p,*q;
head=(node *)malloc(sizeof(node));
head->next=NULL,head->ptr=NULL;
q=head;
q->data=0,q->n=0;
for(int i=0;i<n;i++){
p=(node *)malloc(sizeof(node));
scanf("%d%d",&p->data,&p->n);
p->next=q->next;
q->next=p;
p->ptr=q;
q=p;
}
return head;
}
void opea(node *heada,node *headb,int n){
node *p,*q;
node *s;
int delete_n;
p=heada->next,q=headb->next;
for(;p!=NULL;){
q=headb->next;
for(;q!=NULL;){
if(p->data==q->data){
s=p->ptr;
if(p->next==NULL)
s->next=p->next;
else {
p->next->ptr=s;s->next=p->next;
}
n-=1;
}
q=q->next;
}
p=p->next;
}
p=heada->next;
printf("%d\n",n);
for(int i=0;i<n;i++){
printf("%d %d\n",p->data,p->n);
p=p->next;
}
}
int main () {
int n,m;
scanf("%d%d",&n,&m);
node *heada,*headb;
heada=creadlist(n);
headb=creadlist(m);
opea(heada,headb,n);
return 0;
}
0.0分
0 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复