顺序表的合并出现了一个小问题
qList MergeList_Sq(SqList &A,SqList &B, SqList &C)
{
int *pa=A.elem;
int *pb=B.elem;
C.length=A.length + B.length;
int *pc=C.elem=(int * )malloc(C.length * sizeof(int));
int *pa_last=A.elem + A.length;
int *pb_last=B.elem + B.length;
while((pa<pa_last)&&(pb <pb_last))
{
if(*pa <=*pb)
*pc++ = *pa++;
else
*pc++ = *pb++;
}
while(pa<pa_last)
*pc++=*pa++;
while(pb <pb_last)
*pc++=*pb++;
return C;
}
循环终止条件不懂,假设我输入的是1 2 2 那pa不是=pa_last了吗 那根据循环条件就不能赋值给pc了
[解决办法]
假设我输入的是1 2 2 那pa不是=pa_last了吗 那根据循环条件就不能赋值给pc了
while((pa<pa_last)&&(pb <pb_last)) //其中一个链表或者两者都没有到达首地址的时候执行循环
if(*pa <=*pb)
*pc++ = *pa++; //存放*pa的值之后,同时pa,pc向前移动一个位置。
else
*pc++ = *pb++; //存放*pb的值之后,同时pb,pc向前移动一个位置。