3.1线性表及其运算

线性结构的特点是:在数据元素的非空有限集中1.存在唯一的一个被称做“第一个”的数据元素2.存在唯一的一个被称做“最后一个”的数据元素3.除第一个之外,集合中的每个数据元素均只有一个前驱4.除最后一个之外,集合中每个数据元素均只有一个后继。

一、线性表的定义

  • 线性表: 是n≥0个数据元素a₁,a₂,…,an的有限序列,序列中除第一个和最后一个以外,每个元素有且仅有一个直接前驱和直接后继。

一个数据元素可以由若干个数据项组成。在这种情况下,常把数据元素称为记录,含有大量记录的线性表称为文件。 例如,学生为记录,姓名性别年龄班级学号为数据项。

线性表一般可以简称为“表”,可以形式化表示为:

A=(a₁,a₂,...,an), 空表:A=( ),或A=ø 以模型展开,抽象概念,根据具体的问题

数据元素a₍i₎的类型的形式化表示描述:datatype

二、线性表的特性:所有元素属于统一数据类型

  • 数据元素有限序列:可数,有限
    • 线性表的表长---元素个数,空表表长定义为0
    • 数据元素线性关系:一个接着一个,顺序关系 (1≤i≤n)
    • 线性表属于线性结构

三、线性表的常见运算

      1. 确定线性表长度
      2. 存取线性表的第i个数据元素,检验、改变某一个数据项的值
      3. 再第i  -1个和第i个数据元素之间插入一个元素
      4. 删除第i个数据元素
      5. 将两个或两个以上的线性表合并
      6. 将一个线性表拆分成两个或两个以上的线性表
      7. 重新复制一个线性表
      8. 对线性表的数据元素根据规则进行重组
  • 基本操作
    1. INITIATE(L) 初始化操作。设定一个空的线性表L
    2. LENGTH(L) 求长度函数。函数值为给定线性表L中数据元素的个数
    3. GET(L,i) 取元素函数。若1≤i≤LENGTH(L),则函数值为给定线性表L中第i个数据元素,否则为空元素NULL。称i为该数据元素在线性表中的次序。
    4. PRIOR(L,i) 求前驱函数。已知elm为给定线性表L中的一个数据元素,若它的次序大于1,则函数值为elm的前驱,否则为空元素。
    5. NEXT(L,elm) 求后继元素。已知elm为给定线性表L中的一个数据元素,若它的次序小于LENGTH(L),则函数值为elm的后继,否则为空元素。
    6. LOCATE(L,x) 定位函数。给定值x,,若线性表L中存在其值和x相等的数据元素,则函数值为该数据元素在线性表中的次序(或其存储位置),否则为零(NULL)。若线性表中值和x相同的数据元素不止一个,则函数值为这些元素在线性表L中的次序的最小值。
    7. INSERT(L,i,b) 前插操作。在给定线性表L中第i个数据元素之前插入一个新的数据元素b,使操作之前长度为n的线性表 (a₁,a₂,...,ai-1,ai,...,an) 变成长度为n+1的线性表(a'₁,a'₂,...,a'i-1,b,a'i+1,...,a'n) 其中b为操作之后的线性表L'中第i个数据元素,且当1≤j≤i-1时a'j=aj,当i+1≤j≤n+1时a'j=aj-1.可见,此操作仅在1≤i≤LENGTH(L)+1时可行。
    8. DELETE(L,i) 删除操作。若1≤i≤LENGTH(L),删除给定线性表L中第i个数据元素,使操作之前长度为n的线性表 (a₁,a₂,...,ai-1,ai,ai+1,...,an) 变成长度为n-1的线性表 (a'₁,a'₂,...,a'i-1,a'i,...,a'n-1) 其中,当1≤j≤i-1时a'j=aj,而当i≤j≤n-1时a'j=aj+1。若i<1或i>LENGTH(L),则此操作无意义。
    9. EMPTY(L) 判空表函数。若L为空表,则返回布尔值“true”,否则返回布尔值“false”。
    10. CLEAR(L) 表置空操作。已知线性表L或为空表或为非空表,操作结果将L置为空表。
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值