第6~7讲: 线性表

未完待续。。。

一 线性表相关知识

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 求并集的例子

猜你喜欢

转载自www.cnblogs.com/luoxun/p/13383050.html