求两个有序单链表的并集(La∪Lb)
List Union(List La, List Lb)
{
List resultList;
Position pa, pb, pResult;
assert(La != NULL && Lb != NULL);
pa = La->Next;
pb = Lb->Next;
InitList(&resultList);
pResult = resultList;
while(pa && pb)
{
if(pa->Data < pb->Data)
{
InsertAfter(pa->Data, pResult);
pa = pa->Next;
pResult = pResult->Next;
}
else if(pa->Data > pb->Data)
{
InsertAfter(pb->Data, pResult);
pb = pb->Next;
pResult = pResult->Next;
}
else
{
InsertAfter(pa->Data, pResult);
pa = pa->Next;
pb = pb->Next;
pResult = pResult->Next;
}
}
while(pa)
{
InsertAfter(pa->Data, pResult);
pa = pa->Next;
pResult = pResult->Next;
}
while(pb)
{
InsertAfter(pb->Data, pResult);
pb = pb->Next;
pResult = pResult->Next;
}
r