定义
概念
线性表 最简单和最常用的一种数据结构,它是由n个数据元素(结点)组成的有限序列。
逻辑特征
①有且仅有一个称为 开始元素 的a₁,它没有前趋,仅有一个直接后继a₂;
②有且仅有一个称为 终端元素 的a₁,它没有后继,仅有一个直接前趋;
③其余元素ai(2≤i≤n-1)称为 内部元素 ,它们都有且仅有一个直接前趋a i-1和一个直接后继ai+1
基本运算
①置空表
②求表长
③取表中第i个元素GetNode(L,i),若1≤i≤ListLength(L),则返回第i个元素ai
④按表查找LocateNode(L,x)
⑤插入
⑥删除
顺序存储
概念
指的是将线性表的数据元素按其逻辑次序依次存入一组地址连续的存储单元里,用这种方法存储的线性表称为顺序表
只要确定了线性表存储的起始位置,线性表中任意一个元素都可随机存取,所以顺序表是一种随机存取结构
链式存储结构
单链表(线性链表)
建立单链表
头插法建表
从一个空表开始,重复读入数据,生成新结点,将读入的数据存放到新结点的数据域中,然后将新结点插入到当前链表的表头上,直到读入结束标志为止
尾插法建表
将新结点插入在当前链表的表尾上,因此需要增设一个尾指针rear,使其始终指向链表的尾结点
查找运算(带头结点)
①按结点序号查找
②按结点值查找
循环链表
含义: 是链式存储结构的另一种形式。
特点: 单链表中最后一个结点(终端结点)的指针域不为空,而是指向链表的头结点,使整个链表构成一个环。
双向链表
含义: 形成的链表中有两条不同方向的链。
顺序表和链表的比较
时间性能
查询访问
插入删除
空间性能
顺序表需要先前设定,设定小了容易溢出,大了容易造成浪费。
链表一般不会出现按空间浪费,常适用于动态分配,但是它的空间利用率不如顺序存储高,顺序存储空间利用率为1,它肯定是小于1的。