2.30

2.30

 

 

 1 #include<stdio.h>
 2 #include<stdlib.h>
 3 typedef struct Node{
 4     int data;
 5     Node*next;
 6 }Node,*LinkList;
 7 InitLinkList(LinkList*L)
 8 {
 9     *L=(LinkList)malloc(sizeof(Node));
10     (*L)->next=NULL;
11 }
12 CreateLinkList(LinkList L)
13 {
14     int length,e;
15     Node*t,*r=L;
16     scanf("%d",&length);
17     for(int i=0;i<length;i++)
18     {
19         scanf("%d",&e);
20         t=(LinkList)malloc(sizeof(Node));
21         t->data=e;
22         r->next=t;
23         r=t;
24     }
25     r->next=NULL;
26 }
27 Delete(LinkList A,LinkList B,LinkList C)
28 {
29     Node*pre=A,*a=A->next,*b=B->next,*c=C->next;
30     while(a&&b&&c)
31     {
32         while(b&&b->data<a->data)b=b->next;
33         while(c&&c->data<a->data)c=c->next;
34         if(a->data==b->data&&b->data==c->data)
35         pre->next=a->next,free(a);
36         else pre=a;
37         a=pre->next;
38     }
39     
40 }
41 OrderLinkList(LinkList A)
42 {
43     Node*t=A->next;
44     while(t)
45     {
46         printf("%d ",t->data);
47         t=t->next;
48     }
49 }
50 int main()
51 {
52     LinkList A,B,C;
53     InitLinkList(&A),InitLinkList(&B),InitLinkList(&C);
54     CreateLinkList(A),CreateLinkList(B),CreateLinkList(C);
55     Delete(A,B,C);
56     OrderLinkList(A);
57     return 0;
58 }

 

上一篇:带头节点的单链表


下一篇:2021-11-07 线性表的合并(单链表)