首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

顺序表的合并出现了一个小疑点

2012-10-12 
顺序表的合并出现了一个小问题qList MergeList_Sq(SqList &A,SqList &B, SqList &C){int *paA.elemint *

顺序表的合并出现了一个小问题
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向前移动一个位置。

热点排行