数据结构与算法笔记数据结构与算法笔记-线性表定义和特点线性表定义和特点
线性表的定义和特点线性表的定义和特点
# 定义:定义:
由n (n>0)个数据特性相同的元素构成的有限序列称为线性表。线性表。
# 对于非空线性表或者线性结构,其特点是:对于非空线性表或者线性结构,其特点是:
存在唯一的一个被称作“第一个第一个”的数据元素;
存在唯一的一个被称作“最后一个最后一个”的数据元素;
除第一个以外,结构中的每个数据元素均只有一个前驱前驱;
除最后一个以,外结构中每个数据元素只有一个后继后继。
线性表的类型定义线性表的类型定义
线性表示相当灵活的数据结构,其长度可以根据需要适当的增长或者缩短,即对线性表的数据元素不仅可以进行访问,而且可
以进行擦汗如和删除等操作。
一、下列给出线性表的抽象数据类型定义:一、下列给出线性表的抽象数据类型定义:
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无定义。
抽象数据类型仅是一个模型的定义,并不涉及模型的的具体实现,因此这里描述中所涉及的参数不必考虑具体数据类型。在实
际运用中,数据元素可能有多种类型,到时可根据具体需要选择使用不同的数据类型。
作者:Erase Me
评论0