有顺序表A和B,元素均按从小到大的排列,编写一个算法将它们合成一个顺序表C,要求C也是从小到大排序

书本上算法是这样的
void merge(SeqList A,SeqList B,SeqList C){
int i=0,j=0,k=0;
while(i<A.last&&j<B.last){
if(A.data[i]<B,last[j]){
C->data[k++]=A.data[i++];
}
else{
C->data[k++]=B.data[i++];
}
}
while(i<=A.last){C->data[k++]=A.data[i++];}
while(i<=B.last){C->data[k++]=B.data[j++];}
C->last=k-1;
}
我想问的是,C->data[k++]=A.data[i++];这条语句中的k++,是先自增,还是整个语句执行完再自增。个人理解是先自增的,不过先自增的话,这个算法就错了,因为C->data[0]没有取到值。

第1个回答  2011-11-30
先取值再自增。
如果是++k就是先自增再取值本回答被提问者采纳

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网