void Merge_L_Order( LinkList<ElemType> &A, LinkList<ElemType> &B ) { LinkNode<ElemType> *pa = A.GetHead()->next, *pb = B.GetHead()->next, *t1=A.GetHead(), *t2; int pos = 1; while(pa) { if(!pb) break; if(pb->data < pa->data) {
t2 = pb->next; A.ListInsertNode(t1, pb); pa = pb; pb = t2;
}else if(pb->data == pa->data) { t2 = pb->next; delete pb; pb = t2; }else { pos ++; t1 = pa; pa = pa->next; } } if(pb) A.GetTail()->next = pb; while(pb && pb->next) { if(pb->next->data == pb->data) { t1 = pb->next; pb->next = t1->next; delete t1; }else { pb = pb->next; } } if(pb) A.SetTail(pb); delete B.GetHead(); B.GetTail()->next = NULL; }
|
评论 0
还没有评论。