正在进行安全检测...
发布时间:1714424310 来源:文档文库
小
中
大
字号:
void Union(List &La, List Lb { // 算法2.1
// 将所有在线性表Lb中但不在La中的数据元素插入到La中 int La_len,Lb_len,i; ElemType e;
La_len = ListLength(La; // 求线性表的长度 Lb_len = ListLength(Lb; for (i=1; i<=Lb_len; i++ {
GetElem(Lb, i, e; // 取Lb中第i个数据元素赋给e if (!LocateElem(La, e, equal // La中不存在和e相同的数据元素 ListInsert(La, ++La_len, e; // 插入 } } // union
void MergeList(List La, List Lb, List &Lc { // 算法2.2 // 已知线性表La和Lb中的元素按值非递减排列。
// 归并La和Lb得到新的线性表Lc,Lc的元素也按值非递减排列。 int La_len, Lb_len; ElemType ai, bj;
int i=1, j=1, k=0; InitList(Lc;
La_len = ListLength(La; Lb_len = ListLength(Lb;
while ((i <= La_len && (j <= Lb_len { // La和Lb均非空 GetElem(La, i, ai; GetElem(Lb, j, bj; if (ai <= bj {
ListInsert(Lc, ++k, ai; ++i; } else {
ListInsert(Lc, ++k, bj; ++j; } }
while (i <= La_len {
GetElem(La, i++, ai; ListInsert(Lc, ++k, ai; }
while (j <= Lb_len {
GetElem(Lb, j++, bj; ListInsert(Lc, ++k, bj; }
} // MergeList
Status InitList_Sq(SqList &L { // 算法2.3 // 构造一个空的线性表L