线性结构
1.存在唯一的一个被称为第一个的数据元素
2.存在唯一的一个被称为最后一个的数据元素
3.除了第一个之外,集合中的每个数据元素都有且只有一个前驱
4.除了最后一个外,集合中的每个数据元素都有且只有一个后继
线性表
最常用最简单的一种数据结构
一个线性表是N个数据元素的有限序列
顺序存储结构
线性表的顺序表示指的是用一组地址连续的存储单元一次存储线性表的数据元素
线性表的这种机内表示称做线性表的顺序存储结构或顺序映像,称这种存储结构的线性表为顺序表。特点为,表中的相邻元素赋以相邻的存储位置。以元素在计算机内物理位置相邻来表示线性表中数据元素之间的逻辑关系。只要确定了存储线性表的起始位置,线性表中任一数据元素都可以随机存取。
通常借助于程序语言中的数组来表示
优点:随机存取任一元素
缺点:插入和删除时需要移动大量元素
链式存储结构
用一组任意的存储单元存储线性表数据元素,可以连续,也可以不连续
除了存储本身信息外,还需要存储直接后继信息的存储位置,从而组成结点
一个结点包含两个域,存储数据元素本身信息的称为数据域,存储后继存储位置的称为指针域
指针域中存储的信息称为指针或者链
N个结点形成链表,即为线性表的链式存储结构
逻辑上相邻的数据元素但是物理存储位置不相邻,这种存储结构称为非顺序映像或链式映像
优点:无需大量移动数据元素,只需更改移动的数据元素对应的指针域即可
缺点:无法随机读取数据元素,增加指针域,加大空间开销
单链表每个链表中只包含一个指针域,又可称为线性链表或单链表
头指针->其他结点->空指针
循环链表
最后一个结点的指针域指向头结点,整个链表就形成一个环,称为循环链表
头指针->其他结点->头结点
双向链表
一个结点包含两个指针域,包括前驱和后继
延伸阅读
1.递增序列,如1,2,6,8,9,数据元素依次增加,且不相等,无需呈规律性增加
2.非递减序列,如1,2,2,4,5,6,6,数据元素整体呈增加状态,但相邻数据元素可以相等
3.递减序列,如6,4,3,2,1,数据元素依次减少,且不相等,无需呈现规律性减少
4.非递增序列,如6,6,4,4,3,2,1,数据元素整体呈减少状态,但相邻数据元素可以相等