有谁会数据结构里归并操作的,可以帮忙解释一下while后面的代码意思吗?

void MergeList(SqList La,SqList Lb, SqList &Lc)
{
//归并操作

ElemType pa,*pb,*pc,*pa_last,*pb_last;
pa=La.elem;
pb=Lb.elem;
Lc.listsize=Lc.length=La.length+Lb.length;

pc=Lc.elem=(ElemType
)malloc(Lc.listsize*sizeof(ElemType));
if(!Lc.elem)exit(OVERFLOW);
pa_last=La.elem+La.length-1;

pb_last=Lb.elem+Lb.length-1;

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++;}_

有大神能说一下这段代码什么意思么???

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++;}_

顺序表的合并
while(pb<=pb_last)
*pc++=*pb++;
这里是遍历b表的剩余部分,并且依次拷贝到c表中。