线性表的抽象数据类型

一、线性表的抽象数据类型定义

 

ADT List{

数据对象:D={ai|ai∈ElemSet,i=1,2,...,n,n≥0}

数据关系:R={<ai-1,ai>|ai-1,ai∈D,i=2,...,n}

基本操作:

InitList(&L)

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

DestroyList(&L)

初始条件:线性表L已经存在。

操作结果:销毁线性表L。

ClearList(&L)

初始条件:线性表L已经存在。

操作结果:将线性表L重置为空表。

ListEmpty(L)

初始条件:线性表L已经存在。

操作结果:若线性表L为空表,则返回TURE; 否则返回FALSE。

ListLength(L)

初始条件:线性表L已经存在。

操作结果:返回线性表L中的数据元素个数。

GetElem(L,i,&e)

初始条件:线性表L已经存在,1 <=i<= ListLengthy。

操作结果:用e返回线性表L中第i个数据元素的值。

LocateElem(L,e,compare())

初始条件:线性表L已经存在,compare()是数据元素判定函数。

操作结果:返回L中第1个与e满足compare()的数据元素的位序。若这样的数据元素不存在则返回值为0。

PriorElem(L, cur_e, &pre_e)

初始条件: 线性表L已经存在。

操作结果:若cur_e是L的数据元素,且不是第一个,则用pre_e返回它的前驱否则操作失败; pre_ e无意义。

NextElem(L, cur_ e, &next_e)

初始条件:线性表L已经存在。

操作结果:若cur_ e是L的数据元素,且不是第最后个,则用next_e返回它的后继,否则操作失败, next_e无意义。

ListInsert(&L, i, e)

初始条件:线性表L已经存在,1<=i<= ListLength(L)+1。

操作结果:在L的第i个位置之前插入新的数据元素e, L的长度加一。

插入元素e之前(长度为n) :(a2..... a-1.a...,.n,)

插入元素e之后(长度为n+1) :(a,a2.... ai-1,e,ai,...,an)

ListDelete(&L,i,&e)

初始条件:线性表L已经存在,1<=i<= ListLength(L)。

操作结果:删除L的第i个数据元素,并用e返回其值,L的长度减一

删除前(长度为n) :

( a,a2... ai-1, ai, ai+1,...,an)

删除后(长度为n-1 ) :

(a1,a2....,ai-1,ai+1,...,an)

ListTraverse(&L, visited())

初始条件:线性表L已经存在

操作结果:依次对线性表中每个元素调用visited()

二、线性表的基本操作总结图

  • 5
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

夜深人静码代码

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值