数据结构与算法笔记-线性表定义和特点

线性表的定义和特点

# 定义:

  • 由n (n>0)个数据特性相同的元素构成的有限序列称为线性表。

# 对于非空线性表或者线性结构,其特点是:

  1. 存在唯一的一个被称作“第一个”的数据元素;
  2. 存在唯一的一个被称作“最后一个”的数据元素;
  3. 除第一个以外,结构中的每个数据元素均只有一个前驱
  4. 除最后一个以,外结构中每个数据元素只有一个后继

线性表的类型定义

线性表示相当灵活的数据结构,其长度可以根据需要适当的增长或者缩短,即对线性表的数据元素不仅可以进行访问,而且可以进行擦汗如和删除等操作。

一、下列给出线性表的抽象数据类型定义:

  • ADT 线性表 (list)
  • Data 线性表的数据对象集合为{a1,a2,a3,a4…,an},每个元素的类型均为DataType。其中,除了第一各元素a1以为每个元素有且只有一个直接前驱元素,除了最后一个元素an以外,每个元素有且只有一个直接后继元素。数据元素之间的关系是一对的关系。

二、数据操作:

InitList(*L):         //初始化操作,生成一个空的线性表L。
ListEmpty(L):         //判断是否为空表,如果是就返回ture,如果不是就返回lfalse。
ClearList(*L):        //将线性表清空。
GetElem(L,i,*e):      //将线性表L中的第i个节未知元素值返回给e。
LocateElem(L,e):      //在线性表中查找与给定值e相等的元素,如果查找成功,返回元素在表中的序号表示成功;否则返回0表示失败。
ListInsert(*L,i,e): //在线性表L中第i个位置插入新的元素e。
ListDelete(*L,i,*e)://删除线性表L中第i个位置元素,并返回其值给e。
Listlength(L):        //返回线性表L的元素个数。
TraverseList (L) :      //遍历线性表,在遍历过程中对L的每个节点只访问一次。
NextElme (L,cur_e,&next_e): //若cur_e是线性表的数据元素,而且不是最后一个,则用next_e返回其后继,否则操作失败,next_e无定义。
PriorElme (L,cur_e,&pre_e): //若cur_e是线性表的数据元素,而且不是第一个,则用pre_e返回其后继,否则操作失败,pre_e无定义。

抽象数据类型仅是一个模型的定义,并不涉及模型的的具体实现,因此这里描述中所涉及的参数不必考虑具体数据类型。在实际运用中,数据元素可能有多种类型,到时可根据具体需要选择使用不同的数据类型。

猜你喜欢

转载自blog.csdn.net/qq_44957186/article/details/104344310