线性结构的特点:
线性结构是最简单、最直接的数据关系,数据元素之间一一对应。
线性表
定义:由n个类型相同数据元素的有限序列(n是线性表的长度)。
n=0,空表。
n>0,除第一个元素无直接前驱,最后一个元素无直接后继外,其余每个数据有且仅有一个直接前驱和一个直接后继。
抽象数据类型三要素和作用
三要素:数据元素,结构关系,基本操作
基本操作(运算集合):初始化,销毁,置空,判空,求长度,查找,存取,插入,删除
作用:一经定义,就可多次使用,其基本运算适用于进行相关的各种需求。
特点:
同一性:每一个数据元素必须属于同一数据对象(数据类型相同)
有穷性:由有限个数据元素组成,表中数据元素的个数就是表的长度
有序性:相邻数据元素之间存在序偶关系
存储结构:顺序存储,链式存储。
顺序存储:用一组地址连续的存储单元依次存储线性表中的各个元素(逻辑上相邻的数据元素在物理上也相邻)
即“结点顺序存,关系顺序化”
顺序存储结构的基本运算:查找操作,插入操作,删除操作,顺序表合并算法
(1)查找操作:按序号查找(第i个数据元素)和按内容查找(与给定值相等的元素)。(按序号查找给出序号随机存取,按内容查找从头到尾顺序比较,找到元素后返回元素的位置,循环条件是“还没找完且还没找到”)
(2)插入操作:定位(定位到第i个元素位置,即要插入元素的位置),移动(从第i个到表尾都向后移一位),插入(在位置i-1出插入元素)
注:线性表插入、删除平均移动次数为表长度的一半。
(3)顺序表合并算法:初始化,比较循环(两个表中的元素按顺序比较,谁小谁先放入结果表中),复制循环(一个表已经放完,还没放完的表的剩下部分复制到结果表中)
(4)顺序存储优点:无需为表示结点间的逻辑关系而增加额外的储存空间;可方便地随机存取查找表中的任一元素
(5)顺序存储缺点:插入删除效率低,除表尾位置外,在其他位置插入删除都必须移动大量元素;由于顺序表要求占用连续的存储空间,存储分配只能预先进行静态分配,因此当表长变化较大时,难以确定合适的存储规模。
(6)顺序存储特点:随机查找速度快,大量插入删除效率低(便于顺序存取,不适合动态变化)