1 #include<stdio.h>
2 #include<stdlib.h>
3 #define Capacity1 10
4 #define Capacity2 5
5 struct List {
6 int* ElemSet;
7 int len;
8 int capacity;
9 }list1,list2;
10
11 void initList() {
12 list1.len = 0, list2.len = 0;
13 list1.capacity = 10;
14 list2.capacity = 5;
15 list1.ElemSet = (int*)malloc(Capacity1 * sizeof(int));
16 list2.ElemSet = (int*)malloc(Capacity2 * sizeof(int));
17
18 if (!list1.ElemSet || !list2.ElemSet) {
19 printf("初始化失败\n");
20 return;
21 }
22 else {
23 printf("成功创建list1和list2\n");
24 //给list1初始化5个数据
25 for (int i = 0;i < 5;i++) {
26 list1.ElemSet[i] = i + 1; //1,2,3,4,5
27 list1.len++;
28 }
29 //给list2初始化5个数据
30 for (int i = 0;i < 5;i++) {
31 list2.ElemSet[i] = i + 10; //11,12,13,14,15
32 list2.len++;
33 }
34 }
35 }
36
37 //打印表中数据
38 void showList(struct List list) {
39 for (int i = 0;i < list.len;i++) {
40 printf("%d ", list.ElemSet[i]);
41 }
42 printf("\n");
43 }
44
45 //在表中插入元素
46 void insertElem(struct List list, int e, int insertIndex) {
47 for (int i = list.len - 1;i >= insertIndex;i--) {
48 list.ElemSet[i + 1] = list.ElemSet[i];
49 //showList(list);
50 }
51 list.ElemSet[insertIndex] = e;
52 }
53
54 //把list2全部插入到list1中
55 void unionList() {
56 for (int i = 0;i < list2.len;i++) {
57 list1.len++;
58 insertElem(list1, list2.ElemSet[i], list1.len-1 );//注意:总是插入到list1中的最后一个位置,即list1.len-1的位置,list1.len是不段改变的
59 //showList(list1);
60 }
61 showList(list1);
62 printf("表的长度是:%d\n", list1.len);
63 }
64
65 void main() {
66 initList();
67 printf("表1的数据是:\n");
68 showList(list1);
69 printf("表2的数据是:\n");
70 showList(list2);
71 printf("把list2插入到list1后:\n");
72 unionList();
73 }
![]()