未完待续。。。
一 线性表相关知识
1 定义:由零个或多个数据元素组成的有限序列
数学定义:若将线性表定义为(a1,a2,...,ai-1,ai,ai+1,...an),则表中ai-1领先于ai,ai领先于ai+1,称ai-1是ai的直接前驱元素,ai+1是ai的直接后继元素
线性表的长度:线性表元素的个数n(n>0),当n=0时,称为空表。
2 特点:
- 线性表是一个序列,有先后顺序
- 若存在多个元素,则第一个元素无前驱,而最后一个元素无后继,其它元素有且只有一个前驱和后继
- 线性表的元素是有限的
二 抽象数据类型
1 数据类型的定义:指一组性质相同的类型的集合及定义在此集合上的一些操作的总称,例如:整型、浮点型、布尔型、字符型
2 C语言中数据类型的分类
原子类型:不可以再分解的基本类型,例如:整型、浮点型、字符型
结构类型:由若干个类型组合而成,是可以再分解的,例如整型数组是由若干整型数据组成的。
3 抽象:是指抽取出事物具有的普遍性本质。它要求抽象出问题的特征而忽略非本质的细节,是对具体事物的一个概括。
4 抽象数据类型:我们对数据类型进行了抽象,就得到了抽象数据类型
- 抽象数据类型的定义(Abstract Data Type,ADT):指一个数据类型及定义在该数据类型上的一组操作
- 特点:数据类型的定义仅取决于他的一组逻辑特性,而与其在计算机内部如何表示和实现无关
- 意义:“抽象”的意义在于数据类型的数学抽象特性
- 类型:
- 已经设计定义并实现的数据类型
- 计算机编程人员在设计软件程序时自己定义的数据类型
- 描述抽象数据类型的标准格式:
- ADT 抽象数据类型名
- Data
- 数据元素之间逻辑关系的定义
- Operation
- 操作
- endADT
三 线性表的抽象数据类型
1 定义:
- ADT 线性表(list)
- Data
- 线性表的数据对象集合为{a1,a2,...,an},每个元素的类型均为DataType。其中,除第一个元素a1外,每个元素有且只有一个直接前驱元素;除了最后一个元素an外,每个元素有且只有一个直接后继元素。数据元素之间的关系是一对一关系
- Operations
- Initlist(*L):初始化操作,建立一个空的线性表L。
- ListEmpty(L):判断线性表是否为空表,若线性表为空,则返回true,否则,返回false
- ClearList(*L):将线性表清空
- GetElem(L,i,*e):将线性表L中的第i个位置元素值返回给e
- LocateElem(L,e):在线性表L中查找与给定值e想等的元素,如果查找成功,返回该元素在表中序号表示成功;否则返回0表示失败
- ListInsert(*L,i,e):在线性表L中第i个位置插入新元素e
- ListDelete(*L,i,e):删除线性表中第i个位置的元素,并用e返回其值
- ListLength(L):返回线性表L的元素个数
- endADT
注意:对于不同的应用,线性表的基本操作是不同的,上述操作是最基本的,对于实际问题中涉及的关于线性表的更复杂的操作,完全可以用这些基本操作的组合来实现
2 求并集的例子
第6~7讲: 线性表
原文:https://www.cnblogs.com/luoxun/p/13383050.html