线性表(List):0个或多个数据元素组成的有限序列。 线性表元素个数n(n>=0)定义为线性表的长度,n=0是空表。 关键点: 1、序列:有先后顺序 2、多元素时,除了首尾,其他元素都有且只有一个前驱和后继。 3、元素是有限的
数据类型:一组性质相同的值的集合,以及定义在集合上的一些操作的总称。例如编程语言中的整型、浮点型.…
数据类型的意义:不同的数据在内存中开辟不同大小的空间。
数据类型分类:(按照取值不同) 原子类型:不可再分,如整型、字符型等。 结构类型:若干个类型组合而成,可再分解。如整型数组可分为若干整型数据。
抽象数据类型(Abstract Data Type, ADT):一个数学模型及定义在该模型上的一组操作。(把数据类型和相关操作捆绑在一起) 抽象的意义:数据类型的数学抽象特性。 计算机编程者在设计软件程序时可以自己定义的数据类型。
抽象数据类型的标注格式:
ADT 抽象数据类型名 Data 数据元素之间的逻辑关系的定义 Operation 操作 endADT注意:线性表中的序号从1开始的。
线性表A,B并集操作,A=A∪B 分析:把存在于B中但不在A中的元素插入A。循环遍历B中每个元素,判断是否在A中,不在则插入。 基础操作: ListLength(L); GetElem(L,i,*e); LocateElem(L,e); ListInsert(*L,i,e);
void unionL(List *La,List Lb) %指针的问题?? { int La_len,Lb_len,i; ElemType e; %?这个是什么变量? La_len=ListLength(*La); Lb_len=ListLength(Lb); for(i=1;i<=Lb_len;i++) { GetElem(L,i,*e); if(!LocateElem(L,e)) { ListInsert(*L,i,e); } } }