void MergeList (SqList *a,SqList *b,SqList *c) {
int i = 1;
int j = 1;
int l_a = a->length;
int l_b = b->length;
int k = 1;
ElemType a1,b1;
while (i <= l_a && j <= l_b) {
GetElem (a,i,&a1);
GetElem (b,j,&b1);
if (a1 <= b1) {
ListInsert(c,k++,a1);
i++;
}else {
ListInsert (c,k++,b1);
j++;
}
}
while (i <= l_a) {
GetElem (a,i++,&a1);
ListInsert (c,k++,a1);
}
while (j <= l_b) {
GetElem (b,j++,&b1);
ListInsert (c,k++,b1);
}
}
void Union (SqList *l1,SqList *l2) {
int l1_len = ListLength (l1);
int l2_len = ListLength (l2);
int i;
ElemType e;
for (i = 0;i < l2_len;i++) {
GetElem (l2,i+1,&e);
if (LocateElem (l1,e,&compare) !=0 ) {
ListInsert(l1,++l1_len,e);
}
}
}
线性表的归并
最新推荐文章于 2019-04-30 13:26:39 发布