212线性表的基本操作 【例24】判别两个集合A和B是否相等。 【方法二】不使用辅助结构Lc (1)若线性表La和线性表Lb的长度不等,则返回两集合不等; (2)对Lb中的每个数据元素,在La中进行查询; (3)若La中不存在与该数据元素相同的数据元素,则返回两集合不等; (4)重复(2)和(3)步,直到Lb中的数据元素都遍历完为止; (5)返回两集合相等
第 16 页 2.1.2 线性表的基本操作 【例2-4 】判别两个集合A和B是否相等。 【方法二 】____不使用辅助结构Lc (1)若线性表La和线性表Lb的长度不等,则返回两集合不等; (2)对Lb中的每个数据元素,在La中进行查询; (3)若La中不存在与该数据元素相同的数据元素,则返回两集合不等; (4)重复(2)和(3)步,直到Lb中的数据元素都遍历完为止; (5)返回两集合相等
212线性表的基本操作 【例24】判别两个集合A和B是否相等。 【具体算法】方法二 bool isequal ( List La, List Lb) if( ListLength(La l= ListLength (L return(FALSE; Lb len= ListLength (Lb) for(k=1;k<=Lben;k+)该算法的正确性是因为集 GetElem(Lb, k, e) 合中不存在两个相同的元 i=LocateElem(La, e); 素!!! if (i==o)return(FALSE) return (TRUE);
第 17 页 2.1.2 线性表的基本操作 【例2-4 】判别两个集合A和B是否相等。 【具体算法 】____方法二 bool isequal (List La, List Lb) { if ( ListLength(La) != ListLength(Lb) ) return (FALSE); Lb_len = ListLength (Lb); for (k = 1; k<= Lb_len; k++) { GetElem (Lb, k, e); i = LocateElem (La, e); if (i == 0) return (FALSE); } return (TRUE); } 该算法的正确性是因为集 合中不存在两个相同的元 素!!!!!
如何在计算机中存储性表?如 何在计算机中奥现线性表的基本 操作? 为了存储线性表,至少要保存两类信息: 1)线性表中的数据元素; 2)线性表中数据元素的顺序关系; 通常线性表有两种存储表示方法:顺序存储表示和链 式存储表示
第 18 页 为了存储线性表,至少要保存两类信息: 1)线性表中的数据元素; 2)线性表中数据元素的顺序关系; 如何在计算机中存储线性表?如 何在计算机中实现线性表的基本 操作? 通常线性表有两种存储表示方法:顺序存储表示和链 式存储表示
团22线性表的顺序表示和实现 221顺序表线性表的顺序存储表示线性表(a123…an) 的顺序存储结构 线性表的顺序存储结构,就是用一组连续的 a1 内存单元依次存放线性表的数据元素。 a2 ai-I 用顺序存储结构存储的线性表 称为顺序表 ai ai+ n
第 19 页 线性表的顺序存储结构,就是用一组连续的 内存单元依次存放线性表的数据元素。 a1 a2 ai-1 ai ai+1 an 线性表(a1 ,a2, a3, ... an ) 的顺序存储结构 用顺序存储结构存储的线性表 ——称为顺序表 2.2 线性表的顺序表示和实现 2.2.1 顺序表——线性表的顺序存储表示
221顺序表—线性表的顺序存储表示 t个单元 说明: 在顺序存储结构下,线性表元素之间 的逻辑关系,通过元素的存储顺序反映 Loc(au) a1 表示)出来; a2 假设线性表中每个数据元素占用t个 ai-I 存储单元,那么,在顺序存储结构中,线 性表的第个元素的存储位置与第1个元素Lo(a1) ai 的存储位置的关系是 ai+ Loc(ai)=Loc(a1)+(i-1)t n
第 20 页 2.2.1 顺序表——线性表的顺序存储表示 说明: · 在顺序存储结构下,线性表元素之间 的逻辑关系,通过元素的存储顺序反映( 表示)出来; · 假设线性表中每个数据元素占用t 个 存储单元,那么,在顺序存储结构中,线 性表的第i个元素的存储位置与第1个元素 的存储位置的关系是: Loc(ai ) = Loc( a1 )+ ( i – 1) t a1 a2 ai-1 ai ai+1 an t个单元 Loc( a1 ) Loc(ai )