首页 > 其他分享 >【考研数据结构知识点详解及整理——C语言描述】第二章线性表的定义和基本操作

【考研数据结构知识点详解及整理——C语言描述】第二章线性表的定义和基本操作

时间:2024-05-26 22:02:41浏览次数:27  
标签:知识点 线性表 元素 基本操作 操作 数据结构 数据

25计算机考研,数据结构知识点整理(内容借鉴了王道408+数据结构教材),还会不断完善所整理的内容,后续的内容也会不断更新(可以关注),若有错误和不足欢迎各位朋友指出!

目录

 

一.线性表的定义

二.线性表的基本操作


一.线性表的定义

(1)线性表是具有相同数据类型的n(n>0)个数据元素的有限序列,其中n为元素个数即表长,当n=0时线性表是一个空表。若用L命名线性表,则一般表示为

L=(a_{1}, a_{2},...a_{i}, a_{i+1},...,a_{n})

  • 式中,a_{1}是唯一的”第一个”数据元素,又称表头元素a_{n}是唯一的“最后一个”数据元素,又称表尾元素
  • 这里的数据元素a_{i}(1≤i≤n)在不同情况下具体含义可以不同,它既可以是原子类型,也可以是结构类型,但个线性表中的数据元素必须属于同一数据对象
  • 除第一个元素外,每个元素有且有一个直接前驱。除最后一个元素外,每个元素有且仅有一个直接后继。(“直接前驱”和“前驱”、“直接后继”和“后继”通常被视为同义词)
  • 同一线性表中的元素必定有相同特性,数据元素间的关系是线性关系。

以上就是线性表的逻辑特性,这种线性有序的逻辑结构正是线性表名字的由来。

(2)线性表的特点:

同一性。线性表由同类数据元素组成,每一个a_{i}必须属于同一数据类型,意味着每个元素占有相同的大小的存储空间。

有穷性。线性表由有限个数据元素组成,表长度就是表中数据元素的个数。

有序性。线性表中相邻数据元素之间存在着序偶关系<a_{i}a_{i+1}>。有先后次序。

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

注意:
线性表是一种逻辑结构,表示元素之间一对一的相邻关系。顺序表和链表是指存储结构,两者属于不同层面的概念,因此不要将其混淆。

二.线性表的基本操作

一个数据结构的基本操作是指其最核心、最基本的操作。其他较复杂的操作可通过调用其基本操作来实现。线性表的主要操作如下:

InitList(&L):初始化表。构造一个空的线性表。
Length(L):求表长。返回线性表L的长度,即L中数据元素的个数。
LocateElem(L,e):按值查找操作。在表L中查找具有给定关键字值的元素的个数。
Getelem(L,i):按位査找操作。获取表中第i个位置的元素的值。
ListInsert(&L,i,e):插入操作。在表L中的第i个位置上插入指定元素e。
ListDelete(&L,i,&e):删除操作。删除表L中第i个位置的元素,并用e返回删除元素的值。
PrintList(L):输出操作。按前后顺序输出线性表L的所有元素值。
Empty(L):判空操作。若L为空表,则返回true,否则返回false。
DestroyList(&L):销毁操作。销毁线性表,并释放线性表L所占用的内存空间。

标签:知识点,线性表,元素,基本操作,操作,数据结构,数据
From: https://blog.csdn.net/qq_63492484/article/details/139220615

相关文章

  • 常量知识点
    常量的声明关键字:const固定写法:const变量类型变量名=初始值;附上代码://变量的声明inti=10;//常量的声明constintj=11;常量的特点必须初始化不能被修改作用:声明一些常用不变的变量,如PI等附上代码://变量的声明inti=10;//常量的声明constintj......
  • 【知识点】深入浅出STL标准模板库
    前几天谈论了许多关于数论和数据结构的东西,这些内容可能对初学者而言比较晦涩难懂(毕竟是属于初高等算法/数据结构的范畴了)。今天打算来讲一些简单的内容-STL标准模板库。STL标准模板库C++标准模板库(StandardTemplateLibrary,STL),是C++语言非常重要的一个构成部分......
  • Java基础知识点-常见面试题(持续更新...)
    文章目录前言面向对象的三大特征1.封装2.继承3.多态抽象类和接口有什么相同点和区别?Java深拷贝、浅拷贝、引用拷贝Java中==和equals()的区别?为什么重写equals()时必须重写hashCode()方法?1.首先,hashCode()有什么用?2.两个对象有相同的hashCode值并不意味它们一定相等......
  • linux文件权限常用知识点,基于Linux(openEuler、CentOS8)
    目录知识点常用实例知识点真实环境文件显示解读常用实例文件所有者chown-Rnginx:nginx/home/source目录权限(R选填必须大写<遍历子文件夹及文件>)chmod-R755/home/sourcechmod-R777/home/source......
  • HashMap常见知识点(持续更新...)
    文章目录前言HashMap的底层数据结构解决Hash冲突的方法有哪些,HashMap用哪种为什么Hash冲突时,先用链表,再转为红黑树HashMap默认加载因子为什么是0.75HashMap中,key的存储索引计算方式HashMap数组的长度为什么是2的幂次方HashMap的put方法流程一般使用什么类型作为KeyHashMa......
  • shell脚本的相关知识点
    shell脚本的相关知识本质:编程语言,shell命令的有序集合编译型语言    示例:C/C++   支持:编译器支持   效率:高解释型语言    示例:shell脚本,python,js   支持:命令解释器支持   效率:低   开始shell脚本编程    1.创建shell脚本文件,......
  • 计算机网络之应用层知识点总结
    6.1网络应用模型(1)应用层概述(2)网络应用模型的介绍客户/服务器(C/S)模型P2P模型6.2域名解析系统DNS(1)DNS系统介绍(2)域名(3)域名服务器(4)域名解析过程6.3文件传输协议FTP(1)文件传输协议的介绍(2)FTP服务器和用户端(3)FTP工作原理6.4电子邮件(1)电子邮件系统概......
  • Mybatis知识点回顾(一)【温故而知新】
    前言Mybatis:一款优秀的持久层框架,用于简化JDBC。MyBatis本是Apache的一个开源项目iBatis,2010年这个项目apache迁移到了googlecode,并且改名为MyBatis。2013年11月迁移到Github。1.JDBC介绍JDBC(JavaDataBaseConnectivity),就是使用Java语言操作关系型数据库的一套API......
  • 【知识点】浅入线段树与区间最值问题
    前言:这又是一篇关于数据结构的文章。今天来讲一下线段树和线段树的基本应用。线段树(SegmentTree),是一种非常高效且高级的数据结构,其主要用于区间查询和与区间更新相关的问题,例如进行多次查询区间最大值、最小值、更新区间等操作。区间最值问题引入常见的线段树题型就是区......
  • 大数据技术原理与应用——第1章(知识点+课后题)
    参考:大数据技术原理与应用(第3版)林子雨编著基本概念大数据:指无法在可承受的时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。流数据/数据流:指在时间分布和数......