【数据结构(5)】2.3 线性表的类型定义

文章介绍了线性表的抽象数据类型定义,包括数据对象和数据关系的概念。接着详细阐述了线性表的基本操作,如初始化、销毁、清除、判断空表、获取长度、元素获取与定位、元素前趋和后继、插入与删除以及遍历等操作。
摘要由CSDN通过智能技术生成

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

在这里插入图片描述

  • 数据对象:就是一些元素,元素的个数大于等于 0。
  • 数据关系:ai-1 是 ai 的前驱,同时 ai 是 ai-1 的后继,他们都属于集合 D

2. 线性表的基本操作

  1. 初始化线性表 (lnitlist(&L))

    • 操作结果:构造一个空的线性表L
  2. 销毁线性表(DestoryList(&L))

    • 初始条件:线性表 L 已经存在。
    • 操作结果:销毁线性表 L,内存中再没有这个线性表。
  3. 清除线性表(ClearList(&L))

    • 初始条件:线性表 L 已经存在。
    • 操作结果:将线性表 L 里面的内容重置。
  4. 判断线性表是否为空(ListEmpty(L))

    • 初始条件:线性表 L 已经存在。
    • 操作结果:判断线性表内是否有元素,如果线性表 L 为空表(n = 0),则返回 TURE,反之返回 FALSE。
  5. 求线性表长度 (ListLength(L))

    • 初始条件:线性表 L 已经存在。
    • 操作结果:返回线性表 L 中的数据元素的个数。
  6. 获取线性表元素(GetElem(L,i,&e))

    • 初始条件:线性表 L 已经存在,取第 i 个元素,i 的取值范围,1 <= i <= ListLength(L),小于等于线性表的长度。
    • 操作结果:用 e 接收线性表 L 中第 i 个数据元素的值。
  7. 查找和定位元素(LocateElem(L,e,compare()))

    • 初始条件:线性表 L 已经存在,compare()是数据元素判定函数,找大于小于或等于 e 的元素。
    • 操作结果:返回 L 中第一个与 e 满足 compare() 的数据元素的位序.若这样的数据元素不存在则返回值为 0。
  8. 获得元素的前趋(PriorElem(L,cur_e,&pre_e))

    • 初始条件:线性表 L 已经存在
    • 操作结果:若 cur_e 是 L 的数据元素,且不是第一个,则用 pre_e 接收它的前趋(前一个元素),反之操作失败;pre_e 无意义。
  9. 获得元素的后继(NextElem(L,cur_e,&next_e))

    • 初始条件:线性表 L 已经存在
    • 操作结果:若 cer_e 是 L 的数据元素,且不是最后一个,则用 next_e 接收它的后继,反之操作失败,next_e 无意义。
  10. 在线性表中插入一个元素(Lisrinsert(&L,i,e))

    • 初始条件:线性表 L 已经存在,插入位置范围 1 <= i < =Listlength(L)+1,可以在第一个位置插入,也可以插入在最后一个元素之后。
    • 操作结果:在 L 的第 i 个位置之前插入新的数据元素 e ,L的长度加一。

在这里插入图片描述

  1. 删除第 i 个元素(ListDlete(&L,i,&e))
    • 初始条件:线性表 L 已经存在,删除元素 i 的位置, 1<= i <= ListLength(L),从第一个到最后一个元素。
    • 操作结果:删除 L 的第 i 个数据元素,并用 e 接收被删除的值,L 的长度减一。

在这里插入图片描述

  1. 遍历线性表(ListTraverse(&L,visited()))
    • 初始条件:线性表 L 已经存在
    • 操作结果:依次对线性表中每个元素调用 visited()。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值