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

news/2024/11/27 8:56:38/

文章目录

  • 1. 线性表的抽象数据类型定义
  • 2. 线性表的基本操作

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()。

http://www.ppmy.cn/news/22202.html

相关文章

第六章——CSS元素显示模式(网页布局),块元素、行内元素、行内块元素

文章目录6.1 块元素6.1.1 块级元素的特点6.2 行内元素6.3 行内块元素6.4 元素显示模式总结6.5 元素显示模式转换选择不同的标签元素&#xff0c;以更好的布局我们网页的整体结构元素显示模式就是元素&#xff08;标签&#xff09;以什么方式进行显示&#xff0c;比如自己占一行…

若依框架 -------- vue3+element-plus(三)

后端管理系统&#xff0c;前后端分离的框架若依管理后台&#xff0c;来看下vue3element-plus版本。 静态文本 assets assets 静态img、svg、style main.js import /assets/styles/index.scss // global css 引入了全局样式 组件 components breadcrumb 面包屑 从路由中获取…

【C++】多态——实现、重写、抽象类、多态原理

文章目录一、多态概念二、多态定义及实现三、析构函数的重写四、重载、重写、重定义总结五、C11 override 和 final六、抽象类七、多态原理八、单继承和多继承关系的虚函数表1.单继承虚函数表2.多继承虚函数表3.菱形继承、菱形虚拟继承九、经典题目十、总结一、多态概念 多态的…

「自控元件及线路」1.2 电机中的磁性材料与磁场

本节介绍磁性材料的性能、分类 本节介绍电机中永磁材料的工作曲线 本节介绍电机中主磁极、电枢的磁场及电枢反应 文章目录磁性材料的基本概念磁性材料的磁性能高导磁性 饱和性 磁滞性 非线性温度特性 电阻率特性铁耗磁性材料的分类电机中的永磁材料永磁电机概述永磁材料的磁性能…

TCP协议面试灵魂12 问(三)

等待2MSL的意义 如果不等待会怎样&#xff1f; 如果不等待&#xff0c;客户端直接跑路&#xff0c;当服务端还有很多数据包要给客户端发&#xff0c;且还在路上的时候&#xff0c;若客户端的端口此时刚好被新的应用占用&#xff0c;那么就接收到了无用数据包&#xff0c;造成…

jquery方法学习及案例

JQ框架入手须知封装方法学习及应用插件&#xff08;白嫖超好用&#xff09;总结案例推荐网课链接入手须知 1.进官网点3.6版本 2.复制全部代码 3.建立文档名为jquery.min.js&#xff0c;粘贴代码 &#xff08;用的时候同cssjs引入&#xff09; 封装方法学习及应用 介绍联系…

元素的层叠顺序

层叠顺序&#xff0c;表示元素发生层叠时有着特定的垂直显示顺序。 下面是盒模型的层叠规则&#xff1a; 对于上图&#xff0c;由上到下分别是&#xff1a; &#xff08;1&#xff09;背景和边框&#xff1a;建立当前层叠上下文元素的背景和边框。 &#xff08;2&#xff09;负…

Kerberos协议与认证数据包分析

Kerberos协议 Kerberos是一种在开放的非安全网络中认证并识别用户身份信息的方法, 它旨使用密钥加密技术为客户端/服务端应用程序提供强身份认证。 目前主流的Kerberos版本是2005年的RFC4120标准的Kerberos v5, Windows、Linux和MacOs均支持Kerberos协议。Kerberos基础 Kerbe…