线性表的合并实例C++
时间: 2024-09-22 17:06:59 浏览: 36
C++归并算法实例
线性表的合并通常指的是将两个已排序的线性表(如数组或链表)合并成一个新的有序列表。这里以C++为例,我们假设你有两个递增顺序排列的整数数组需要合并:
```cpp
#include <iostream>
#include <vector>
// 合并两个有序数组的功能
void mergeArrays(std::vector<int>& arr1, std::vector<int>& arr2, std::vector<int>& result) {
int i = 0, j = 0, k = 0;
// 遍历两个数组直到有一个结束
while (i < arr1.size() && j < arr2.size()) {
if (arr1[i] <= arr2[j]) {
result[k++] = arr1[i++];
} else {
result[k++] = arr2[j++];
}
}
// 把剩余未处理的元素加入结果数组
while (i < arr1.size()) {
result[k++] = arr1[i++];
}
while (j < arr2.size()) {
result[k++] = arr2[j++];
}
}
int main() {
std::vector<int> arr1 = {1, 3, 5};
std::vector<int> arr2 = {2, 4, 6};
std::vector<int> result;
mergeArrays(arr1, arr2, result);
for (const auto& num : result) {
std::cout << num << " ";
}
std::cout << "\n";
return 0;
}
```
在这个例子中,`mergeArrays`函数接受两个已经排好序的数组作为输入,并创建一个新的数组来存储合并后的结果。运行这个程序会输出:`1 2 3 4 5 6`。
阅读全文