解题思路:

注意事项:

参考代码:

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

1 人评分

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

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

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

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

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

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

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

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

评论列表 共有 0 条评论

暂无评论