数据结构:顺序表,链表各自概念及优缺点

顺序表与链表是线性表的两种常见实现方式。顺序表通常用数组存储,分为静态和动态,适用于频繁修改但不常增删的情况。链表则由非连续存储单元通过指针链接,包括多种类型,适用于大量增删操作。本文还提供了作者的简单实现示例链接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

顺序表与链表都是线性表(n个具有相同特性的数据元素形成的有限序列)。

 

顺序表 是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般情况下采用数组存储。在数组上完成数据的增删查改。顺序表又分为静态顺序表和动态顺序表,静态顺序表使用定长数组来存储数据,但是如果一旦存储超过定长,就很难处理,所以把静态顺序表的定长数组改为动态开辟的数组。

这个是我自己写的简单顺序表功能实现:https://blog.youkuaiyun.com/zjx1113/article/details/84727490

 

链表 是一种物理存储结构上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表有八种形式,单向,双向,带头,不带头(有无新节点),循环,非循环。在这八种形式中常用的是无头单向不循环链表(结构简单,一般不会单独用来存数据,实际中更多是作为其他数据结构的子结构,如哈希桶、图的邻接表等等。)和有头双向循环链表(结构最复杂,一般用在单独存储数据。实际中使用的链表数据结构,都是带头双向循环链表。另外这个结构虽然结构复杂,但是使用代码实现后会发现结构会带来很多优势,实现反而简单了)。

这是我写的单向无头单向非循环链表的简单功能实现:https://blog.youkuaiyun.com/zjx1113/article/details/84774964

 

优缺点 :

 顺序表链表
优点空间连续、支持随机访问

1.任意位置插入删除时间复杂度为O(1)

2.没有增容问题,插入一个开辟一个空间

缺点

1.中间或前面部分的插入删除时间复杂度O(N)

2.增容的代价比较大

以节点为单位存储,不支持随机访问

 

由于两者的优缺点发现:

顺序表 更适合存放需要多次修改查看的数据,不适合需要大量增删的数据。

链表 与顺序表相反适合存储需要大量增删的数据,而非需要多次改查的数据。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值