2.1线性表的类型定义 ListDelete(&L,i,&e) (删除数据元素) 初始条件: 线性表L已存在且非空, 1≤isLengthList(L) 操作结果: 删除L第个元素,用e返回其值, L长度减1 -16 145
— 16 — 2.1 线性表的类型定义 ListDelete(&L, i, &e) 初始条件: 操作结果: 线性表L已存在且非空, 1≤i≤LengthList(L) 删除L第i个元素,用e返回其值, L长度减1 (删除数据元素)
2.1线性表的类型定义 利用上述定义的线性表 可以实现其它更复杂的操作 例2-1 例2-2 -17- 145
— 17 — 2.1 线性表的类型定义 利用上述定义的线性表 可以实现其它更复杂的操作 例 2-2 例 2-1
2.1线性表的类型定义 例2-1假设:有两个集合A和B分别用两个线性表 LA和LB表示(线性表中的数据元素即为集合中 的成员)。 现要求一个新的集合A=AUB。 LA=(1,2,3)LB=(2,4,6) (1,2,3,4,6) -18- 145
— 18 — 2.1 线性表的类型定义 例2-1 假设:有两个集合A和B分别用两个线性表 LA 和 LB 表示(线性表中的数据元素即为集合中 的成员)。 现要求一个新的集合A=A∪B。 LA=(1, 2, 3) LB=(2, 4, 6) (1, 2, 3, 4, 6)
2.1线性表的类型定义 算法思想:扩大线性表LA,将存在于线性表LB 中而不存在于线性表LA中的数据元素插入到线 性表LA中去。 1.从LB中依次取得每个数据元素; 2.依值在LA中进行查寻; 3.若不存在,则插入。 1,5,9,8 2,4,8 1,5,9,8,2,4 -19 1945
— 19 — 2.1 线性表的类型定义 扩大线性表LA,将存在于线性表LB 中而不存在于线性表LA中的数据元素插入到线 性表LA中去。 1.从LB中依次取得每个数据元素; 2.依值在LA中进行查寻; 3.若不存在,则插入。 算法思想: 1,5,9,8 2,4,8 1,5,9,8,2,4
1.从LB中依次取得每个数据元素; 2.1线性表的类型定义 2.依值在LA中进行查寻; 3.若不存在,则插入。 void union(List &La,List Lb) La len ListLength(La); Lb len ListLength(Lb); for (i=1;i<=Lb len;i++) GetElem(Lb,i,e); if (!LocateElem(La,e,equal()) ListInsert(La,++La len,e); 3 }/union -20 145
— 20 — 2.1 线性表的类型定义 void union(List &La, List Lb) { La_len = ListLength(La); Lb_len = ListLength(Lb); for (i = 1; i <= Lb_len; i++) { GetElem(Lb, i, e); if ( !LocateElem(La, e, equal( )) ListInsert(La, ++La_len, e); } }// union 1.从LB中依次取得每个数据元素; 2.依值在LA中进行查寻; 3.若不存在,则插入