线性表合并

来源:互联网 发布:数据库的二级映像结构 编辑:程序博客网 时间:2024/05/18 20:34

例:

假设利用两个线性表LA和LB分别表示两个集合A和B(即线性表中的数据元素即为集合中的成员),现要求一个新的集合A=A U B。这就要求对线性表作如下操作:扩大线性表LA,将存在于线性表LB中而不存在于线性表LA中的数据元素插入到线性表LA中去。只要从线性表LB中依次取得每个数据元素,并依值在线性表LA中进行查访,若不存在,则插入之。上述操作过程可用下列算法描述之。

void union(List & La, List Lb){

// 将所有在线性表Lb中但不在La中的数据元素插入到La中

La_len = ListLength(La); // 求线性表La的长度

Lb_len = ListLength(Lb); // 求线性表La的长度

for(i = 1; i <= Lb_len; i++){

GetElem(Lb, i, e);// 取Lb中第i个数据元素赋给e

if(!LocateElem(La, e, equal))  ListInsert(La, ++La_len, e);

// La中不存在和e相同的数据元素,则插入之

}

} // union

分析:题目中只是说了有两个线性表,但没表明是有序的线性表。

实现代码如下:


0 0
原创粉丝点击