数据结构--线性表及其逻辑和存储结构 no 3.

线性表(linear list)

线性表是n个类型相同数据元素的有限序列,通常记作(a0,a1,ai,…ai+1…an+1)。
1.相同数据类型
在线性表的定义中,我们看到从a0到an-1的n个数据元素具有相同的元素
比如说可以都是数字(A,B,C…Z);
当然也可以是具有更复杂结构的数据元素,例如学生,商品,装备。
相同的数据类型意味着在内存中存储时,每个元素会占用相同的内存空间,便于后续的查询定位。
2.序列
在线性表的相邻数据元素之间存在着序偶关系。
即ai+1是ai的直接前驱。则ai是ai+1的直接后继。
同时ai,又是ai+1的直接前驱,ai+1是ai的直接后续。
唯一没有直接前驱的元素a0一端称为表头。
唯一没有后续的元素an-1一端被称为表尾
除了表头和表尾元素外,任何一个元素都有且仅有一个直接前驱和直接后续。
3.有限
线性表中数据元素的个数n定义为线性表的长度,n是一个有限值。
当n=0时线性表为空表
在非空的线性表中每个数据元素在线性表中有唯一确定的序号,例如a0的序号是0,ai的序号是i。
在一个具有n>0个数据元素的线性表中,数据元素序号的范围是(0,n-1).++++


这里所有代码用Java实现:
线性表通常理解为Java中的Arrayist.,
为什么说查找数据快:

在这里插入图片描述

为什么说插入删除效率低:
插入:

在这里插入图片描述

删除:

在这里插入图片描述

链式存储结构:
数据元素的存储对应的是不联系的存储空间,每个存储节点对应一个需要存储的数据元素。

每个节点是由数据域和指针域组成。元素之间的逻辑关系通过存储节点之间的连接关系反映出来。

特点:

  1. 比顺序存储结构的存储密度小(每个节点都由数据域和指针域组成,所以相同空间内假设全存满的话顺序比链式存储更多)。
  2. 逻辑上相邻的节点物理上不必相邻
  3. 插入,删除灵活(不必移动节点,只要改变节点中的指针)
  4. 查找节点时链式存储要比顺序存储慢。

图示:
在这里插入图片描述

为什么说链表是插入删除效率高的,而查找效率不高,来看一下链表的逻辑结构:

插入数据:
在这里插入图片描述

删除查找数据问题:
在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值