第二章 线性表

2.1线性表的逻辑结构

2.1.1线性表的定义

1.线性表:简称表,是n(n>=0)个具有相同类型的数据元素的有限序列。

2.线性表中数据元素的个数称为线性表的长度。长度等于零的称为空表。

3.一个非空表记为:L=(a1,a2.......,an),             ai(1<=i<=n)称为数据元素,下脚标i表示该元素在线性表中的位置或序号。

4.线性表的特性:有限性:线性表中数据元素的个数是有穷的;

相同性:线性表中数据元素的类型是相同的;

顺序性:线性表中相邻元素a(i-1)与ai之间存在序偶关系(a(i-1),ai),即a(i-1)是ai的前驱,ai是a(i-1)的后继,a1无前驱,an无后继,其他元素只有一个前驱一个后继。

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

ADT List
Data
      线性表中的数据元素具有相同类型,
      相邻元素具有前驱和后继关系
Operation
InitList
    前置条件:表不存在
    输入:无
    功能:表的初始化
    输出: 无
    后置条件:建一个空表

DestroyList
    前置条件:表已存在
    输入:无
    功能:销毁表
    输出:无
    后置条件:释放表所占用的存储空间
Length
    前置条件:表已存在
     输入:无
     功能:求表的长度
     输出:表中数据元素的个数                                             
     后置条件:表不变



Get
    前置条件:表已存在
    输入:元素的序号i
    功能:在表中取序号为i的数据元素
    输出:若i合法,返回序号为i的元素值,否则抛出异常
    后置条件:表不变
Locate
    前置条件:表已存在
    输入:数据元素x
    功能:在线性表中查找值等于x的元素
    输出:若查找成功,返回x在表中的序号,否则返回0
    后置条件:表不变

Insert
 前置条件:表已存在
 输入:插入i;待插x
 功能:在表的第i个位置处插入一个新元素x
 输出:若插入不成功,抛出异常
    后置条件:若插入成功,表中增加一个新元素
Delete
 前置条件:表已存在
 输入:删除位置i
 功能:删除表中的第i个元素
    输出:若删除成功,返回被删元素,否则抛出异常
    后置条件:若删除成功,表中减少一个元素
Empty
    前置条件:表已存在
    输入:无
    功能:判断表是否为空
    输出:若是空表,返回1,否则返回0
    后置条件:表不变
ADT
进一步说明:(1)线性表的基本操作根据实际应用是而定;
(2)复杂的操作可以通过基本操作的组合来实现;
(3)对不同的应用,操作的接口可能不同。
2.2  线性表的顺序存储结构及实现
2.2.1顺序表——线性表的顺序存储结构

1.存储要点:(1)用一段地址连续的存储单元

                     (2)依次存储线性表中的数据元素

2.在线性表中元素的长度是从1开始的,所以线性表中第i个元素存储在数组中下标为i-1的位置。

3.用数组存储数据表,必须确定数组的长度即线性表的数组空间的长度。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值