数据结构与算法-线性表

数据逻辑结构之 线性表

线性表是多个类型相同的元素组成的有限序列。

一、特性:

1.相同的数据类型,意味着在内存里,每个元素所占的存储空间是一样的。

2.是一个序列,是有顺序的,除了头尾元素,其他的元素都有前驱和后驱元素;

3.长度是有限的,可以为0,每个元素在表里都有一个唯一的序号。

二、详细分类

1.顺序表,即使用数组结构的,元素的存储内存地址是连续的,每个元素有一个索引(序号)。

优点:节省存储空间,索引查找效率高,根据索引直接找到存储地址

缺点:

插入和删除元素,需要大量移动元素,效率低

数组必须提前分配笃定数量的空间,如果存的元素很少,会浪费空间;

按照元素内容查找,需要遍历查找,效率低。

2.链表,链表结构的,又根据单双向、是否循环分为几种。

特性:数据存储在不连续的内存空间里,每个节点存储一个元素,每个节点由数据值和数据指针组成,元素之间的逻辑关系通过节点之间的链接关系反映,逻辑相邻的元素,物理上不一定相邻。

下图是双向链表的结构:

 优点:

插入、删除元素快,不需要移动元素,改指针就行了;

有元素才会分配开年,不会浪费闲置空间。

缺点:

查找元素得遍历,比较慢;

比顺序存储的存储密度小,因为存储地址是不连续的。

三、java中的线性表

vector 顺序表

ArrayList 顺序表

LinkedList 双向循环链表

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值