代码段:
1 #include "stdafx.h"
2 #include<stdio.h>
3 #include<stdlib.h>
4
5
6 //节点结构体
7 typedef struct LNode
8 {
9 int data;
10 struct LNode *next;
11 };
12
13
14 //创建一个空链表
15 LNode* CreateEmptyList()
16 {
17 return NULL;
18 }
19
20 //添加头节点
21 LNode* CreateListHead(LNode *ListHead,int data)
22 {
23 ListHead = (LNode *)malloc(sizeof(LNode));
24 ListHead->data = data;
25 ListHead->next = NULL;
26 return ListHead;
27 }
28
29 //在链表添加节点
30 LNode* AddNode(LNode *List,int data)
31 {
32 List->next = (LNode *)malloc(sizeof(LNode));
33 List = (LNode *)List->next;
34 List->data = data;
35 List->next = NULL;
36 return List;
37 }
38
39
40 int main()
41 {
42 int data1 = 0;
43 int count = 0;
44 int sum = 0;
45 int i = 0;
46 LNode *Temp = NULL;
47 LNode *List1 = CreateEmptyList();
48 LNode *List2 = CreateEmptyList();
49 printf("链表1的长度:");
50 scanf("%d",&count);
51 sum +=count;
52 printf("输入链表1的值:");
53
54 for (i = 0 ;i<count;i++)
55 {
56 //scanf("%d",&data1);
57 data1 = rand();
58 if (List1 == NULL)
59 {
60 List1 = CreateListHead(List1,data1);
61 Temp = List1;
62 }
63 else
64 {
65
66 Temp = AddNode(Temp,data1);
67 }
68 }
69
70
71 printf("链表2的长度:");
72 scanf("%d",&count);
73 sum +=count;
74 printf("输入链表1的值:");
75
76 for (i = 0 ;i<count;i++)
77 {
78 scanf("%d",&data1);
79 if (List2 == NULL)
80 {
81 List2 = CreateListHead(List2,data1);
82 Temp = List2;
83 }
84 else
85 {
86
87 Temp = AddNode(Temp,data1);
88 }
89 }
90
91 Temp = List1; //寻找中间变量,将链表1的值赋值给中间变量
92 while(Temp->next)//当找到链表的最后一个节点就跳出循环
93 {
94 Temp = Temp->next;//将中间节点的下一个指针指向中间变量
95 }//寻找链表1 的最后一个节点
96 Temp->next =List2;//链表2的头指针赋值给链表1的最后一个元素
97 //链表1的最后一个节点的指针指向链表2的头指针
98
99
100 Temp = List1;
101 for(i=0;i<sum;i++)
102 {
103 printf("%d ",Temp->data);
104 Temp =(LNode *) Temp->next;
105
106 }
107
108
109 system("pause");
110 return 0;
111 }