C语言 将两个有序表合并为一个新的有序顺序表,并由函数返回结果顺序表
思路:顺序取两个顺序表小的结点存入新的顺序表中,将剩下的部分加到新的顺序表后面。
bool Merge(SqList one, SqList two, SqList &three)
{
//判断是否越界
if(one.length + two.length > three.three)
return false;
int i = 0, j = 0, k = 0;
//做循环
while(i < one.length && j<two.length)
{
//比较,小的组合到新的顺序表
if(one.data[i] <= two.data[j])
three.data[k++] = one.data[i++];
else
three.data[k++] = two.data[j++];
}
while(i < one.length){
three.data[k++] = one.data[i++];
}
while(j < two.length){
three.data[k++] = two.data[j++];
}
three.length = k;
return true;
}