标签:col null scanf 合并 lis eof list void struct
1 #include<stdio.h> 2 #include<stdlib.h> 3 typedef struct Node 4 { 5 int a; 6 struct Node *next; 7 }Node,*list; 8 void j(list L);//头插法 9 list hb(list LA,list LB); //合并单链表 10 int main() 11 { 12 list A,B,C; 13 A=(list)malloc(sizeof(Node)); 14 B=(list)malloc(sizeof(Node)); 15 16 A->next=NULL; 17 B->next=NULL; 18 19 printf("输入链表A:"); 20 j(A); 21 22 printf("输入链表B:"); 23 j(B); 24 printf("合并后:"); 25 C=(list)malloc(sizeof(Node)); 26 C->next=NULL; 27 C=hb(A,B); 28 C=C->next; 29 while(C!=NULL) 30 { 31 32 printf("%d ",C->a); 33 C=C->next; 34 35 } 36 printf("\n"); 37 return 0; 38 } 39 void j(list L)//头插法 40 { 41 list s; 42 int c; 43 int f=1; 44 while(f) 45 { 46 scanf("%d",&c); 47 if(c!=0) 48 { 49 s=(list)malloc(sizeof(Node)); 50 s->a=c; 51 s->next=L->next; 52 L->next=s; 53 } 54 else 55 f=0; 56 } 57 } 58 59 list hb(list A,list B)//合并两个链表 60 { 61 Node *q,*b,*r; 62 list C; 63 q=A->next; 64 b=B->next; 65 C=A; 66 C->next=NULL; 67 r=C; 68 while(q!=NULL&&b!=NULL) 69 { 70 if(q->a>=b->a) 71 { 72 r->next=q; 73 r=q; 74 q=q->next; 75 } 76 else 77 { 78 r->next=b; 79 r=b; 80 b=b->next; 81 } 82 } 83 if(q) 84 r->next=q; 85 else 86 r->next=b; 87 free(B); 88 return C; 89 }
标签:col null scanf 合并 lis eof list void struct
原文地址:http://www.cnblogs.com/a595452248/p/7692174.html