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 }