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

news2025/1/18 16:00:18

文章目录

  • 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.coloradmin.cn/o/197587.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

1月的碎碎念,但是很有必要

从今年开始每个月会整理一个我生活的琐碎但觉得有必要的事&#xff0c;一来方便年底回顾&#xff0c;二来也希望这些事情对大家有也有些参考。 不高大上&#xff0c;但是希望某一天再看到的时候会觉得充满趣味。1.新的1年的1月开始了&#xff0c;想了很多计划&#xff0c;搬新办…

rocketmq源码-consumerQueue和indexFile文件写入

前言 在rocketmq的文件中&#xff0c;除了commitLog文件&#xff0c;还有两个重要的文件&#xff0c;分别是indexFile文件和consumerQueue文件&#xff0c;这篇笔记主要记录这两个文件的数据是怎么写进去的 consumeQueue文件中对应topic下的一个queue&#xff0c;在consumeQue…

ubuntu22.04安装kalibr

前言 首先ros1目前目前在ubuntu支持的最高版本是20.04。当时我是在ubuntu22.04上编译安装的ros1。过程也十分坎坷&#xff0c;手动下载了很多包&#xff0c;具体就不累赘了。 再者目前网上的资料也都是kalibrros1, 所以推荐安装ros1之后再来安装kalibr。其次这次安装主要 参考…

关于splitChunks的一次原理探索

前言 前端时间在做项目加载优化时用到了splitChunks自动拆包&#xff0c;后了解了一下原理写下了此文。 Modules和Chunks Modules简单来理解就是我们写的功能模块&#xff0c;不管是CommonJS还是ESM都算是一个Module&#xff0c;而Chunks则是webpack根据我们的规则/默认规则…

spring security 前后端分离 进行用户验证 权限登陆的实现代码(看不懂??直接cv)

目录 前言&#xff1a; 一.所需依赖 二.application.properties 三.工具类 3.1ApplicationContextUtils 3.2JwtUtils 3.3ResponseResult 3.4ResponseStatus 3.5RsaUtils 四.UserDetailServiceImpl 五.成功处理器 六.SecurityConfig 七. filter 前言&#xff1a; 前后…

多个路由器的局域网终端设备的资源访问

多个路由器之间资源的访问 本质是将路由设备放置到一个网段 中继路由 中继的路由可以看作是另一个路由中的一个终端设备&#xff0c;只是为了延长传递wifi&#xff0c;在使用ipcofig中的网关和主路由的网关一样&#xff0c;一般都是主路由的IP。 无线桥接的中继路由 无论是…

车-电-路网时空分布负荷预测研究(Matlab代码)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

使用c语言连接mysql数据库并且批量插入数据

​ 使用从c连接数据库需要在本机安装数据库&#xff0c;或者拿到数据库所在主机的IP地址。先说明我使用的是mysql8.0 64位的数据库&#xff0c;使用的vs是vs2019。 1.配置环境 首先打开vs2019&#xff0c;创建一个空项目&#xff0c;让后右击下图所示位置&#xff0c;然…

网络编程套接字之UDP

文章目录一、网络编程二、UDP数据报套接字编程DatagramSocketDatagramPacket实现客户端服务器程序EchoServer客户端一、网络编程 我们网络编程的核心: Socket API&#xff0c;操作系统为我们应用程序提供的API&#xff0c;我们的Socket是和传输层密切相关的。 我们传输层为我…

SpringBoot+Vue+Wx健康上报系统

简介&#xff1a;本项目采用了基本的springbootvueWx设计健康上报系统。详情请看截图。经测试&#xff0c;本项目正常运行。本项目适用于Java毕业设计、课程设计学习参考等用途。 项目描述 项目名称SpringBootVueWx健康上报系统源码作者LHL项目类型Java EE项目 &#xff08;前…

多线程初阶——线程状态

多线程初阶——线程状态 文章目录多线程初阶——线程状态1.Thread类及常见构造方法2.Thread常见的方法3.线程相关的重要操作3.1启动线程—start()3.2中断线程3.3 等待线程— join()3.4 获取线程引用3.5休眠线程—sleep()4.线程的状态1.Thread类及常见构造方法 方法说明Thread(…

前端js实现根据文件url批量压缩下载成zip包

前言 项目开发中&#xff0c;产品经理提了这样一个需求&#xff1a;将系统中的附件实现批量打包下载功能。本来系统中是有单个下载及批量下载功能&#xff0c;现在应业务方的需求&#xff0c;需要多加个批量打包下载。 初步设想是&#xff1a;由后端编写接口实现。但后来经过思…

从事测试开发8年,聊聊我是怎么从0基础到年薪40万的

本人从事测试开发8年多&#xff0c;之前在猪场工作&#xff0c;年薪突破40W&#xff0c;算是一个生活过得去的码农。&#xff08;仅代表本人&#xff09;目前从事软件测试行业的薪资待遇还是很不错的&#xff0c;所以如果朋友们真的对软件测试感兴趣的话可以坚持学下去&#xf…

Java native agent学习笔记-从加载到log4j漏洞检测

记录一下java native agent的学习过程,也顺便造一个检测log4j漏洞的轮子: java native agent相比java agent最大的好处是快,C写的,快的一笔,但是最大的坏处是非常麻烦,毕竟你拿个面过程的语言怼面对象的肯定是比较麻烦的。 本次学习的目的是做个加载器,动态加载agent,然后再实…

研究人员发布 VMware vRealize Log RCE 漏洞,立即打补丁

Horizon3 攻击团队的安全研究人员将于下周发布一个针对漏洞链的漏洞利用程序&#xff0c;以在未打补丁的 VMware vRealize Log Insight 设备上获得远程代码执行。 vRealize Log Insight 现在称为 VMware Aria Operations for Logs&#xff0c;它使 VMware 管理员可以更轻松地分…

每日学术速递2.4

CV - 计算机视觉 | ML - 机器学习 | RL - 强化学习 | NLP 自然语言处理 Subjects: cs.LG、cs.AI 1.Neuro Symbolic Continual Learning: Knowledge, Reasoning Shortcuts and Concept Rehearsal 标题&#xff1a;神经象征性的持续学习&#xff1a;知识、推理捷径和概念排练…

必须掌握的网络安全知识

没有网络安全&#xff0c;就没有国家安全。网络安全和保密防护&#xff0c;是机关单位日常工作中不可忽视的重要问题。尤其在涉密单位工作的人员&#xff0c;因工作性质特殊&#xff0c;不仅要了解非涉密网络的安全操作常识&#xff0c;更要重点了解涉密网络的规范行为要点&…

2021年上半年信息系统项目管理师真题与答案完整版(综合知识、案例分析、论文)

1、 国家信息化体系包括六个要素&#xff0c;其中&#xff08;&#xff09;是信息化体系六要素中的龙头&#xff0c;是国家信息化建设的主阵地&#xff0c;集中体现了国家信息化建设的需求和效益。A、信息资源 B、信息技术应用 C、信息网络 D、信息化政策法规和标准规范0参考答…

若依代码生成器------数据库篇

继上一篇《若依代码自动生成器研究-表查询篇》&#xff0c;我们继续来学习若依系统中的代码生成逻辑。 导入表之Sql查询 在菜单栏点击“代码生成”&#xff0c;在右侧栏中点击“导入”按钮&#xff0c;在文章若依中的代码自动生成器研究-表查询篇中&#xff0c;我们已经一直…

三十六、Kubernetes1.25中数据存储第一篇

1、概述在前面已经提到&#xff0c;容器的生命周期可能很短&#xff0c;会被频繁地创建和销毁。那么容器在销毁时&#xff0c;保存在容器中的数据也会被清除。这种结果对用户来说&#xff0c;在某些情况下是不乐意看到的。为了持久化保存容器的数据&#xff0c;kubernetes引入了…