题目描述:将两个有序顺序表合并为一个新的有序顺序表,并由函数返回结果顺序表。
SqList Merge(SqList A, SqList B) {
SqList C; // 定义新的有序顺序表C,用于存储合并后的结果
C.length = 0; // 初始化C的长度为0
int i = 0; // 指针i用于遍历顺序表A
int j = 0; // 指针j用于遍历顺序表B
int k = 0; // 指针k用于指向顺序表C当前元素的位置
// 遍历A和B,比较当前元素的大小,将较小的元素加入到C中
while (i < A.length && j < B.length) {
if (A.data[i] < B.data[j]) {
C.data[k++] = A.data[i++]; // 将A中的元素加入到C中,同时递增i和k
C.length++; // 更新C的长度
} else {
C.data[k++] = B.data[j++]; // 将B中的元素加入到C中,同时递增j和k
C.length++; // 更新C的长度
}
}
// 如果A或B中有剩余元素,将其加入到C中
while (i < A.length) {
C.data[k++] = A.data[i++];
C.length++;
}
while (j < B.length) {
C.data[k++] = B.data[j++];
C.length++;
}
return C; // 返回合并后的有序顺序表C
}