数据结构-线性表的基本概念

来源:互联网 发布:软件安装包备份 编辑:程序博客网 时间:2024/06/08 01:14

Liner_List 线性结构。线性表是由同一类型的数据元素构成的线性结构。实际中,考生信息表、字符串等都属于线性表

线性表通常可表示为(a1,a2,a3,a4,……an),n为表长,n=0 时为空表

线性表的抽象数据类型

ADT List {

数据对象:D

数据关系:R 前驱、后继

数据操作:

线性表初始化:ListInit(L)

初始条件:线性表L不存在

操作结果:构造一个空的线性表L

求线性表的长度:ListLength(L)

初始条件:线性表L存在操作结果:返回线性表中所含元素的个数

求表元:ListGet(L,i)

初始条件:线性表L存在,且1≦i ≦ListLength(L)

操作结果:返回线性表L中第i个元素的值或地址

按值查找:ListLocate(L,x)

初始条件:线性表L存在,x是一个和线性表L中元素类型相同的数据元素

操作结果:在线性表L中查找值为x的数据元素,其结果返回在L中首次出现的值为x的那个元素的序号,为查找成功,反正失败

清空线性表:ListClear(L)

初始条件:线性表L存在

操作结果:将L置为一个空的线性表

判空线性表:ListEmpty(L)

初始条件:线性表L存在

操作结果:若线性表L为空表,则返回true,否则返回false

求前驱:ListPrior(L,e)

初始条件:线性表L存在

操作结果:若e 是L的元素且不是第一个元素,返回e的前驱,否则操作失败

求后继:ListNext(L,e)

初始条件:线性表L存在

操作结果:若e 是L的元素且不是,最后一个元素,返回e 的后续,否则操作失败

插入:ListInsett(L,i,e)

初始条件:线性表L存在,插入位置正确(1≦i≦ListLength(L)+1)

操作结果:在线性表L的第i个位置上插入一个新元素e,L的长度加1

删除:ListDelete(L,i)

初始条件:线性表L存在,1≦i≦ListLength(L)

操作结果:在线性表L中删除第i个位置上的数据元素,L的长度减1

} ADT List


线性表的顺序表示和实现

线性表的顺序存储是指在内存中,用地址连续的一块存储空间顺序存放线性表的各元素,用这种形式存储的线性表成为顺序表。

a1的存储地址为LOC(a1),每个数据元素占L个存储单元,则第i个数据元素的地址为

Loc(ai)= Loc(a1)+(i-1)*L 1≦i≦n