线性表
来源:互联网 发布:淘宝返现要支付宝账号 编辑:程序博客网 时间:2024/05/16 23:49
-线性结构的特点:在数据元素的非空有限集中
- 存在唯一的一个被称作’第一个’的数据元素;
- 存在唯一的一个被称作’最后一个’的数据元素;
- 除第一个外,集合中的每一个数据元素均只有一个前驱;
- 除最后一个外,集合中的每一个数据元素均只有一个后继;
线性表的顺序存储
-线性表的顺序表示:
-指用一组地址连续的存储单元一次存储线性表的数据元素
注意:
l代表每一个数据元素所需占的存储单元
-顺序存储线性表的插入和删除思想:
-插入说明:
一般情况下,在第i(1<=i<=n)个元素之前插入一个元素时,需将第n至第i(共n-i+1)个元素向后移动一个位置。
-删除说明:
一般情况下,删除第i(1<=i<=n)个元素时,需将从第i+1至第n(共n-i)个元素向前移动一个位置。
线性表的链式存储
-线性链表的链式存储结构又称做线性链表或单链表
-特点:
用一组任意的存储单元存储线性表的数据元素(这组存储单元可以是连续的,也可以是不连续的)
例如:
线性表为{ZHAO,QIAN,SUN,LI,ZHOU,WU,ZHENG,WANG},则改线性表的链式存储结构为:
该线性表的逻辑状态为:
-每一个结点都是由数据域(data)和链域(next)组成。
例如:
对于ai结点:
p–>data = ai
p–>next–>data = ai+1
-线性链表的插入和删除思想:
-插入:
执行操作:
s–>next = p–>next,
p–>next = s;
-线性链表的删除:
执行操作:
p–>next = p–>next–>next;
-双向链表
执行删除操作思想:
p-->prior-->next = p-->next p-->next-->prior = p-->prior
执行插入操作思想:
设s为要插入的数据,则s-->data = e;s-->prior = p-->prior;p-->prior-->next = s;s--next = p;p-->prior = s;
优缺点比较:
顺序存储方式:——适用于需要大量查询的场景
代表例子:ArrayList
优点:查询速度快,对于随机访问get和set效率高
缺点:插入和删除比较麻烦链式存储方式:——适用于大量的插入删除操作场景
代表例子:LinkedList
优点:插入和删除快,对于随机add和remove效率高
缺点:查找比较麻烦
- 线性表--线性存储
- 线性表 线性结构
- 线性表
- 线性表
- 线性表
- 线性表
- 线性表
- 线性表
- 线性表
- 线性表
- 线性表
- 线性表
- 线性表
- 线性表
- 线性表
- 线性表
- 线性表
- 线性表
- 特征处理(Feature Processing)
- 开源代码分析
- 引用
- rxjava的SubscribeOn流程的关键代码
- ML_1 supervised learning and unsupervised learning
- 线性表
- APP最简单高效的营销方法:营销自动化智能化
- BAT 批处理脚本 教程
- 五、万里之行
- mysql中alter命令的用法
- 《大话数据结构》笔记
- Git下载Spring项目源码并编译为Eclipse
- 空de
- [Mapbox GL]地图视图内过滤特性