利用上述定义的线性表 可以实现其它更复杂的操作 例2-1 例2-2 例2-3
利用上述定义的线性表 可以实现其它更复杂的操作 例 2-2 例 2-3 例 2-1
例2 假设有两个集合A和B分别用 两个线性表LA和LB表示,即 线性表中的数据元素即为集合中的 成员。 现要求一个新的集合A=A∪B
假设:有两个集合 A 和 B 分别用 两个线性表 LA 和 LB 表示,即: 线性表中的数据元素即为集合中的 成员。 现要求一个新的集合A=A∪B。 例 2-1
上述问题可演绎为 要求对线性表作如下操作 扩大线性表LA,将存在于线性表 LB中而不存在于线性表LA中的 数据元素插入到线性表LA中去
要求对线性表作如下操作: 扩大线性表 LA,将存在于线性表 LB 中而不存在于线性表 LA 中的 数据元素插入到线性表 LA 中去。 上述问题可演绎为:
操作步骤: 1.从线性表LB中依次察看每个数据元素; Getelem(LB,j)→e 2.依值在线性表LA中进行查访; LocateElem ( LA, e, equal() 3.若不存在,则插入之。 ListInsert(LA, n+1, e)
1.从线性表LB中依次察看每个数据元素; 2.依值在线性表LA中进行查访; 3.若不存在,则插入之。 GetElem(LB, i)→e LocateElem(LA, e, equal( )) ListInsert(LA, n+1, e) 操作步骤:
void union(List &La, List Lb)i La_len= Listlength(La);∥求线性表的长度 Lb len= ListLength(Lb) for(i=1; i<=Lb len; i++)i Getelen(Lb,i,e);∥取Lb中第个数据元素赋给e if ( LocateElem (La, e, equal()) ListInsert(La, ++La len, e) ∥ILa中不存在和e相同的数据元素,则插入之 3//union
GetElem(Lb, i, e); // 取Lb中第i个数据元素赋给e if (!LocateElem(La, e, equal( )) ) ListInsert(La, ++La_len, e); // La中不存在和 e 相同的数据元素,则插入之 void union(List &La, List Lb) { La_len = ListLength(La); // 求线性表的长度 Lb_len = ListLength(Lb); for (i = 1; i <= Lb_len; i++) { } } // union