1.顺序表的实现
void MergeList_Sq(SqList LA,SqList LB,SqList &LC)
{
pa=LA.elem
pb=LB.elem //此处指针pa和pb的初值分别指向两个表的第一个元素
LC.length = LA.length + LB.length;
LC.elem = new ElemType[LC.length]; //为合并后的新表分配一个数组空间
pc = LC.elem; //指针pc指向新表的第一个元素
pa_last = LA.elem + LA.length - 1;
pb_last = LB.elem + LB.length - 1; //指针_last指向表的最后一个元素
while(pa <= pa_last && pb <= pb_last) //当两个表都非空时
{
if(*pa <= *pb) *pc++=*pa++; //依此“摘取”两表中值较小的结点
else *pc++=*pb++;
}
while(pa <= pa_last) *pc++=*pa++; //LB表已达到表尾,将LA中剩余元素加入LC
while(pb <= pb_last) *pc++=*pb++; //LA表已达到表尾,将LB中剩余元素加入LC
}
2.链表的实现
void MergeList_L(L