当前位置: 首页 > news >正文

线性表定义和基本操作

1.线性表的定义

线性表是具有相同数据类型的 n(n>=0) 个数据元素有限序列,其中 n 为表长,当n=0时线性表是一个空表。(忘记数据元素概念的可以参考https://blog.csdn.net/XinxingZh/article/details/155854415?fromshare=blogdetail&sharetype=blogdetail&sharerId=155854415&sharerefer=PC&sharesource=XinxingZh&sharefrom=from_link)

若用 L 命名线性表,则其一般表示为

式中唯一的“第一个”数据元素,又称表头元素

唯一的“最后一个”数据元素,又称表尾元素

除第一个元素外,每个元素有且仅有一个直接前驱;

除最后一个元素外,每个元素有且仅有一个直接后继。

注意线性表是逻辑概念,表示元素之间一对一的相邻关系,只要是这种逻辑结构的都是线性表,和实际存储位置没有任何关系,不一定非要连续挨着存储。

实际上线性表有两种实现,顺序存储叫顺序表,链式存储叫链表。后面会再详细展开介绍,这里要注意这几种表的关系,分别是什么方面的概念。

2.线性表的特点

1.表中元素的个数有限

2.表中元素具有逻辑上的顺序性,表中元素有其先后次序;

3.表中元素都是数据元素,每个元素都是单个元素

4.表中元素的数据类型都相同,这意味着每个元素占有相同大小的存储空间。

5.表中元素具有抽象性,即仅讨论元素间的逻辑关系,而不考虑元素究竟表示什么内容。

根据上述概念和特点,判断以下几种情况是不是线性表:

(1)所有整数组成的序列。

答案:不是线性表,因为个数无穷。

(2)由 n 个实数组成的集合。

答案:不是线性表,因为元素没有先后次序。

(3)由100个字符组成的序列。

答案:是线性表,数量有限,元素数据类型都相同,每个元素是单个元素,也有先后次序。

3.线性表的基本操作

因为不同的表如顺序表、链表,其实际代码会有所不同,所以这里先只写出操作名及操作的描述。

1.初始化表 InitList(&L):构造一个空线性表。

2.求表长 Length(L):返回线性表 L 的长度,即 L 中数据元素的个数。

3.按值查找 LocateElem(L, e):在表 L 中查找具有给定关键字值的元素。(这里的 Elem 和 e 都是来自element)。

4.按位查找 GetElem(L, i):获取表 L 中第 i 个位置的元素的值。

5.插入 ListInsert(&L, i, e):在表 L 中第 i 个位置上插入指定元素 e 。

6.删除 ListDelete(&L, i, &e):删除表 L 中第 i 个位置的元素,并用 e 返回删除元素的值。

7.输出 PrintList(L):按前后顺序输出线性表 L 的所有元素值。

8.判空 Empty(L):若 L 为空表,则返回 true ,否则返回 false 。

9.销毁 DestroyList(&L):销毁线性表,并释放线性表 L 所占用的内存空间。

“&”叫取地址符,这里不太理解的可以先简单理解为:函数的参数加上这个&就表示可以改变这个参数所在的实际的存储位置上的值,不是临时的,是彻底真改了。

http://www.rkmt.cn/news/127647.html

相关文章:

  • 工厂“智变”三部曲:从流水线到自主思考的制造系统
  • 位运算 学习笔记
  • 职场人转型AI:先躲开这五个坑,再选认证
  • 大模型榜单周报(2025/12/20)
  • PCL曲面重建——移动最小二乘法
  • 极限骑行,萌化超级压力的邪修之路。
  • Ansible 配置自动化 - 十里
  • 手把手教你学Simulink——基础电机控制场景实例:基于Simulink的永磁同步发电机电压调节控制仿真
  • 计算机毕业设计springboot高校宿舍分配管理系统 基于SpringBoot的高校智慧寝室分配与综合管理平台 SpringBoot+Vue 高校学生宿舍个性化匹配与事务运营系统
  • 深圳到济南青岛淄博枣庄东营烟台潍坊济宁泰安威海搬家公司搬家物流推荐!跨省搬家排行榜 - 物流人
  • PCTP 学习笔记-TiDB V6 数据库管理(持续更新中)
  • 毕业季必看:6款免费AI论文生成器实测,AI率从79%骤降至5%!
  • 杭州到济南青岛淄博枣庄东营烟台潍坊济宁泰安威海搬家公司搬家物流推荐!跨省搬家排行榜 - 物流人
  • 【Web前端】Angular核心知识点梳理 - 详解
  • 学Simulink——基础电机控制场景实例:基于Simulink的永磁同步发电机温度场耦合仿真
  • 深入解析:基于LDPC/STBC编译码的图像传输系统的MATLAB仿真
  • AI论文辅助工具推荐:8大平台测评,涵盖降重与智能写作功能对比。
  • oracle19c多租户的pdb没有mount怎么查这个pdb库占用的存储空间大小?
  • 杭州到福州厦门莆田三明泉州漳州南平龙岩宁德搬家公司搬家物流推荐!跨省搬家排行榜 - 物流人
  • 复合材料abaqus umat子程序。 基于puck准则,内附inp文件及使用文档,可提供参考...
  • rtpengine-recording(8) 手册页
  • 我发现病理图像标注太贵 后来补多实例学习才稳住模型
  • 西电李龙团队6G智能超表面突破
  • 3Arduino IDE 安装
  • 水凝膜、电镀钢化膜和UV光固膜哪个更防指纹,哪个透光更高呢?排序一下?
  • 提示工程架构师:打造卓越提示缓存机制的设计技巧
  • 【扣子编程】| 2000字实操指南(Coze最新上线)
  • 8款AI论文辅助工具全面评测:改写与原创写作能力分析
  • AI落地六大黄金场景:从营销到政策驱动,附国内及出海成功案例,技术收藏必读
  • DeepSeek引爆新一轮AI投资热潮,2025年这些赛道值得关注!