解题思路:暴力解决

注意事项:边界的处理

参考代码:

#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分

0 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论