线性表的概念及基本操作

线性表的概念及基本操作

概念:线性表的链式链式存储结构的特点是用一组任意的存储单元存储线性表的数据元素(存储单元可以是连续的,也是可以是不连续的)。

为了表示每个数据元素 ai a i 与其直接后继数据元素 ai+1 a i + 1 之间的逻辑关系,对于数据 ai a i 来说,除了存储其本身的信息之外还需要存储一个指向其后继的信息,这两部分组成数据元素 ai a i 的存储映像称之为结点

结点:包含两个域:存储数据元素的域成为数据域;存储直接后继存储未知的域称为指针域指针域存储的信息称之为指针或链。 n n 个结点链接成一个链表叫做线性表的链式存储结构。

结点结构图如下:
| data | next|

抽象数据类型线性表的定义如下:

ADT List {

数据对象:D = { a1 | a1 a 1 ElemeSet E l e m e S e t i = 1, 2, ···,n, n>= 0}
数据关系:R1 = { < ai1 a i − 1 , ai a i > | ai1 a i − 1 , ai a i D, i = 1, 2, ···,n}
基本操作:

InitList ( &L )

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

DestroyList ( &L )

初始条件:线性表L已经存在。
操作结果:销毁线性表L。

ClearList ( &L )

初始条件:线性表 L L 已经存在。
操作结果:将L置为空表。

ListEmpty ( L )

初始条件:线性表 L L 已经存在。
操作结果:若L为空表,则返回 true t r u e ,否则返回 false f a l s e

ListLength ( L )

初始条件:线性表 L L 已经存在。
操作结果:返回L中元素个数。

GetElem ( L, i, &e )

初始条件:线性表 L L 已经存在, 1<=i<=ListLength(L)
操作结果:返回 L L 中在i位置的元素。

LocateElem ( L, e, compare() )

初始条件:线性表 L L 已经存在, compare()是元素判定函数。
操作结果:若 L L 中存在e,则返回 true t r u e ,否则返回 false f a l s e

PriorElem ( L, cur_e, &pre_e)

初始条件:线性表 L L 已经存在。
操作结果:若cure L L 的数据元素,且不是第一个,则用pree返回它的前驱,否则失败,& pree p r e − e 无定义。

NextElem ( L, cur_e, &pre_e)

初始条件:线性表 L L 已经存在。
操作结果:若cure L L 的数据元素,且不是第一个,则用pree返回它的前驱,否则失败,& pree p r e − e 无定义。

ListInsert ( &L, i, e)

初始条件:线性表 L L 已经存在, 1<=i<=ListLength(L)+1
操作结果:在 L L i位置插入元素 e e

ListDelete ( &L, i, &e)

初始条件:线性表L已经存在。
操作结果:在 L L i位置删除元素 e e

ListTraverse ( L, visit)

初始条件:线性表L已经存在。
操作结果:依次对 L L 的每个元素调用函数visit(),一旦失败,则操作失败。

} ADT List

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值