线性表的合并C语言源码
时间: 2024-10-11 16:17:18 浏览: 51
线性表的合并,通常是指将两个已排序的线性表合并成一个新的有序线性表。下面是一个简单的C语言示例,它使用了冒泡排序的思想,先合并较小的元素,然后再插入较大的元素:
```c
#include <stdio.h>
// 合并两个已排序的数组 arr1 和 arr2 到 arr3
void merge(int arr1[], int arr2[], int n1, int n2, int arr3[]) {
int i = 0, j = 0, k = 0;
while (i < n1 && j < n2) {
if (arr1[i] <= arr2[j]) {
arr3[k++] = arr1[i++];
} else {
arr3[k++] = arr2[j++];
}
}
// 如果还有剩余的元素,复制剩下的部分
while (i < n1) {
arr3[k++] = arr1[i++];
}
while (j < n2) {
arr3[k++] = arr2[j++];
}
}
int main() {
int arr1[] = {1, 3, 5};
int n1 = sizeof(arr1) / sizeof(arr1[0]);
int arr2[] = {2, 4, 6};
int n2 = sizeof(arr2) / sizeof(arr2[0]);
int arr3[n1 + n2];
merge(arr1, arr2, n1, n2, arr3);
printf("Sorted merged array: \n");
for (int i = 0; i < n1 + n2; i++) {
printf("%d ", arr3[i]);
}
return 0;
}
```
这个程序首先定义了两个已排序的数组`arr1`和`arr2`,然后创建了一个新的数组`arr3`用于存储合并结果。通过比较和复制元素,最终得到一个按升序排列的新列表。
阅读全文
相关推荐


















