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

【数据结构】线性表的定义和基本操作

线性表的定义和基本操作

在学习一个具体的数据结构的时候,需要关注数据结构的三要素:① 逻辑结构(定义);② 物理结构(存储结构);③ 数据的运算(基本操作)
【线性表的物理结构分为:①顺序表(顺序存储)和 ②链表(链式存储),会在之后进行详细介绍】

线性表的定义

线性表是具有相同数据类型的 n(n≥0)个数据元素的有限序列,其中 n 为表长,当 n=0 时线性表是一个空表
注意:① 元素的数据类型相同意味着每个元素所占空间一样大;② 线性表是有限序列意味着各元素之间有先后次序且数量是有限的】

若用 L 命名线性表,则其一般表示为 L = ( a 1 , a 2 , … , a i , a i + 1 , … , a n ) L=(a_1,a_2,…,a_i,a_{i+1},…,a_n) L=(a1,a2,,ai,ai+1,,an)

  • a i a_i ai 是线性表中的 “第 i 个” 元素线性表中的位序【注意位序是从1开始的,数组下标是从0开始的】
  • a 1 a_1 a1” 是表头元素,“ a n a_n an” 是表尾元素
  • 除第一个元素外,每个元素有且仅有一个直接前驱;除最后一个元素外,每个元素有且仅有一个直接后继

线性表的基本操作

  • InitList(&L)初始化表,构造一个空的线性表 L,分配内存空间
  • DestoryList(&L)销毁操作,销毁线性表,并释放线性表 L 所占用的内存空间

  • ListInsert(&L,i,e)插入操作,在表 L 中的第 i 个位置上插入指定元素 e
  • ListDelete(&L,i,&e)删除操作,删除表 L 中第 i 个位置的元素,并用 e 返回删除元素的值

  • LocateElem(L,e)按值查找操作,在表 L 中查找具有给定关键字值的元素
  • GetElem(L,i)按位查找操作,获取表 L 中第 i 个位置的元素的值

其他常用操作

  • Length(L)求表长,返回线性表 L 的长度,即 L 中数据元素的个数
  • PrintList(L)输出操作,按前后顺序输出线性表 L 的所有元素值
  • Empty(L)判空操作,若 L 为空表,则返回 true,否则返回 fales

实现数据结构的基本操作的原因:
① 团队合作编程,某人定义的数据结构要让其他人能够很方便的使用(封装)
② 将常用的操作/运算封装成函数,避免重复工作,降低出错风险


本文主要参考《王道计算机考研 数据结构》课程视频

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Java零基础-charAt(int index)详解
  • 从零实现诗词GPT大模型:实现多头自注意力
  • 如何使用命令行快速下载Google Drive/OneDrive大文件
  • 【时间盒子】-【6.任务页面】在同一个页面新建、编辑任务
  • 阳极氧化废酸处理
  • 陶建辉演讲干货分享,AI 时代下的数据预测和数据处理挑战
  • PL/SQL 继承Oracle Database 的可靠性、安全性和可移植性
  • Note24091201_组态王画面按钮静音设置
  • springboot教学检查管理系统---附源码77417
  • 12_持久化数据结构
  • ModuleNotFoundError: No module named ‘flask._compat‘
  • web基础之SSRF
  • 微积分复习笔记 Calculus Volume 1 - 2.1 A Preview of Calculus
  • 通过 pl/sql developer工具插入数据的小技巧
  • 如何设计实现完成一个FPGA项目
  • 【MySQL经典案例分析】 Waiting for table metadata lock
  • centos安装java运行环境jdk+tomcat
  • electron原来这么简单----打包你的react、VUE桌面应用程序
  • ES6核心特性
  • Java超时控制的实现
  • Linux中的硬链接与软链接
  • mac修复ab及siege安装
  • PHP的Ev教程三(Periodic watcher)
  • Sublime text 3 3103 注册码
  • windows下mongoDB的环境配置
  • 免费小说阅读小程序
  • 前端面试题总结
  • 扫描识别控件Dynamic Web TWAIN v12.2发布,改进SSL证书
  • 时间复杂度与空间复杂度分析
  • 体验javascript之美-第五课 匿名函数自执行和闭包是一回事儿吗?
  • 京东物流联手山西图灵打造智能供应链,让阅读更有趣 ...
  • ​低代码平台的核心价值与优势
  • !!java web学习笔记(一到五)
  • # MySQL server 层和存储引擎层是怎么交互数据的?
  • # 数论-逆元
  • ###51单片机学习(1)-----单片机烧录软件的使用,以及如何建立一个工程项目
  • #我与Java虚拟机的故事#连载05:Java虚拟机的修炼之道
  • $.ajax中的eval及dataType
  • $.proxy和$.extend
  • (02)Cartographer源码无死角解析-(03) 新数据运行与地图保存、加载地图启动仅定位模式
  • (17)Hive ——MR任务的map与reduce个数由什么决定?
  • (55)MOS管专题--->(10)MOS管的封装
  • (8)STL算法之替换
  • (C++二叉树05) 合并二叉树 二叉搜索树中的搜索 验证二叉搜索树
  • (delphi11最新学习资料) Object Pascal 学习笔记---第13章第1节 (全局数据、栈和堆)
  • (delphi11最新学习资料) Object Pascal 学习笔记---第8章第5节(封闭类和Final方法)
  • (libusb) usb口自动刷新
  • (Redis使用系列) SpringBoot中Redis的RedisConfig 二
  • (博弈 sg入门)kiki's game -- hdu -- 2147
  • (初研) Sentence-embedding fine-tune notebook
  • (附源码)ssm基于微信小程序的疫苗管理系统 毕业设计 092354
  • (附源码)基于ssm的模具配件账单管理系统 毕业设计 081848
  • (附源码)计算机毕业设计ssm基于Internet快递柜管理系统
  • (附源码)计算机毕业设计SSM基于java的云顶博客系统
  • (几何:六边形面积)编写程序,提示用户输入六边形的边长,然后显示它的面积。