2022年的小伙伴们正在积极备考,大多数考生对计算机综合(408)考研知识点都感到很茫然。研学长为大家按照2020年考研大纲的考察目标对计算机综合(408)考研知识点进行了系统化的整合。下面,各位考生就跟着研学长一起了解一下“考研知识点-计算机综合(408)数据结构-线性表”,希望能给各位考生带来帮助。
考研-计算机综合(408)-知识点01-线性表的定义和基本操作
(一). 线性表的定义
定义
线性表是具有相同数据类型的n(n≥0)个数据元素的有限序列。其中n为表长,当n=0时该线性表是一个空表。若用L命名线性表,则其一般表示为L=(a1,a2…ai…an)。本式中,a1是的第一个数据元素,又称表头元素;an是的一个数据元素,又称表尾元素。
逻辑特性
除第一元素外,每个元素有且仅有一个直接前驱。除一个元素外,每个元素有且仅有一个直接后继。
线性表的特点
(1)表中元素的个数有限;
(2)表中元素具有逻辑上的顺序性,在序列中各元素排序有其先后次序;
(3)表中元素都是数据元素,每个元素都是单个元素(单个数据项);
(4)表中元素的数据类型都相同,即每个元素占有相同大小的存储空间;
(5)表中元素具有抽象性,仅讨论元素间的逻辑关系,而不考虑元素究竟表示什么内容。
注意:线性表是一种逻辑结构,表示元素之间一对一的相邻关系。顺序表和链表是存储结构,不是同一个概念!!!!!
(二). 线性表的基本操作
最基本操作:增删改查
InitList(&L):初始化表。构造一个空的线性表;
Length(L):求表长。返回线性表L的长度,即L中数据元素的个数;
LocateElem(L,e):按值查找操作。在表L中查找具有给定关键字值的元素;
GetElem(L,i):按位查找操作。在表L中的第i个位置上插入指定元素e;
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所占用的内存空间。
注:基本操作的实现取决于采用哪种存储结构。其中“&”表示C++中的引用。
考研-计算机综合(408)-知识点02-线性表的表现
(一).顺序存储
顺序存储是指在内存中开辟连续的存储空间来存放数据,比较有代表性的就是数组以及ArrayList集合这种结构的存储方式都是使用的顺序存储来存储元素对象的;而ArrayList的底层也是通过数组来存储数据元素的,所以我们可以通过数组来观察顺序存储的优缺点。
优点:查询、遍历效率高
缺点:增删改效率低
(二). 链式存储
链式存储的存储空间不是连续的,它是通过指针来指向下一个元素或者上一个元素的地址来定位到该元素的,链式存储的由数据域(data域)与指针域(也叫做地址域,单向链表只有尾指针,双向链表有头指针和尾指针)两部分构成,通过指针指向下一元素,将所有的元素穿插起来,从而形成了一个链表。
优点:增删改效率高
缺点:查询、遍历效率低
(三). 线性表的运用
以上就是研学长整理的“考研知识点-计算机综合(408)数据结构-线性表”,希望能给各位考生带来帮助。心专注研学长公众号,回复“真题”,更多考研信息尽在研学长考研网公众号!



