mirror of
https://github.com/kangjianwei/Data-Structure.git
synced 2026-02-06 08:21:44 +08:00
46 lines
950 B
C
46 lines
950 B
C
/*==============
|
||
* 求并集
|
||
*
|
||
* 包含算法: 2.1
|
||
===============*/
|
||
|
||
#include "Union.h" //**▲02 线性表**//
|
||
|
||
/*
|
||
* ████████ 算法2.1 ████████
|
||
*
|
||
* A=A∪B
|
||
*
|
||
* 计算La与Lb的并集并返回。
|
||
* 由于生成的并集会拼接在La上,所以La的入参为指针类型。
|
||
*/
|
||
void Union(SqList* La, SqList Lb) {
|
||
int La_len, Lb_len;
|
||
int i;
|
||
ElemType e;
|
||
|
||
// 求顺序表长度
|
||
La_len = ListLength(*La);
|
||
Lb_len = ListLength(Lb);
|
||
|
||
for(i = 1; i <= Lb_len; i++) {
|
||
// 取Lb中第i个元素赋给e
|
||
GetElem(Lb, i, &e);
|
||
|
||
// 若e不在La中则插入
|
||
if(!LocateElem(*La, e, equal)) {
|
||
ListInsert(La, ++La_len, e);
|
||
}
|
||
}
|
||
}
|
||
|
||
/*
|
||
* 判等
|
||
*
|
||
* 判断两元素是否相等。
|
||
* 如果相等,则返回TRUE,否则,返回FALSE。
|
||
*/
|
||
Status equal(ElemType e1, ElemType e2) {
|
||
return e1 == e2 ? TRUE : FALSE;
|
||
}
|