SWUST OJ(954)
单链表的链接
1 #include <stdio.h> 2 #include <stdlib.h> 3 4 typedef struct LinkNode //单链表节点结构的定义 5 { 6 char data; 7 struct LinkNode *next; 8 }LinkNode; 9 10 void InitLinkList(LinkNode * &L) 11 { 12 /*单链表的初始化*/ 13 L = (LinkNode*)malloc(sizeof(LinkNode)); 14 L->next = NULL; 15 } 16 17 void CreateLinkList(LinkNode *&L, int n,char *num) 18 { 19 /*采用尾插法创建单链表*/ 20 LinkNode* r = L; 21 for (int i = 0; i < n; ++i) 22 { 23 LinkNode * p =(LinkNode*)malloc(sizeof(LinkNode)); 24 p->data = num[i]; 25 p->next = r->next; 26 r->next = p; 27 r = p; 28 } 29 } 30 31 void DisList(LinkNode *L) 32 { 33 /*单链表的输出*/ 34 LinkNode *l = L->next; 35 while(l) 36 { 37 printf("%c ",l->data); 38 l = l->next; 39 } 40 } 41 42 void MergeList(LinkNode *&L, LinkNode* L1) 43 { 44 LinkNode * en = L; 45 while(en->next) 46 { 47 en = en->next; 48 } 49 en->next = L1->next; 50 } 51 52 53 int main(int argc, char const *argv[]) 54 { 55 /*int n = 5; 56 int num[]={1,2,3,4,5};*/ 57 int n, n1; 58 char *num, *num1; 59 60 scanf("%d",&n); 61 num =(char*)malloc(n*sizeof(char)); 62 63 for (int i = 0; i < n; ++i) 64 { 65 scanf(" %c",&num[i]); 66 } 67 68 scanf("%d",&n1); 69 num1 =(char*)malloc(n1*sizeof(char)); 70 71 for (int i = 0; i < n1; ++i) 72 { 73 scanf(" %c",&num1[i]); 74 } 75 76 LinkNode *L, *L1; 77 InitLinkList(L); 78 InitLinkList(L1); 79 CreateLinkList(L,n,num); 80 CreateLinkList(L1,n1,num1); 81 MergeList(L,L1); 82 DisList(L); 83 return 0; 84 }