题目描述:将两个有序顺序表合并为一个新的有序顺序表,并由函数返回结果顺序表。
SqList Merge(SqList A, SqList B) {SqList C; // 定义新的有序顺序表C,用于存储合并后的结果C.length = 0; // 初始化C的长度为0int i = 0; // 指针i用于遍历顺序表Aint j = 0; // 指针j用于遍历顺序表Bint 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和kC.length++; // 更新C的长度} else {C.data[k++] = B.data[j++]; // 将B中的元素加入到C中,同时递增j和kC.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
}