千锋教育-做有情怀、有良心、有品质的职业教育机构

400-811-9990
手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

上海
  • 北京
  • 郑州
  • 武汉
  • 成都
  • 西安
  • 沈阳
  • 广州
  • 南京
  • 深圳
  • 大连
  • 青岛
  • 杭州
  • 重庆
当前位置:合肥千锋IT培训  >  技术干货  >  用链表的目的是什么?

用链表的目的是什么?

来源:千锋教育
发布人:xqq
时间: 2023-10-15 07:00:23

一、用链表的目的

链表主要是便于管理长度或数量不确定的数据,相对于数组,链表处理这种数据时比较节省内存。动态语言通常不大需要链表,因为动态语言的解释器帮你管理内存,但当你对空间效率或插入动作的效率有特殊要求时也可在动态语言中使用链表。

链表常用于在程序中临时存储一组不定长的线性数据。

具有这样的特点的数据可以用链表来保存:

1、数据是逐渐增加的

2、数据是不定长的,在存储名列前茅个数据之前难以确定一个将来一共需要存储多少数据的上限,或者虽然可以确定上限,但这个上限又比通常大部分情况下数据可能达到的长度要大得多,因而一次性按照上限把空间分配好是不划算的。而链表则可以在每次需要增加新数据时才为之申请内存,不会造成浪费,也不会因一次申请不足而使数据的数量受到限制。

3、不需要按照序号对数据进行随机访问。

C++ STL 中提供了list容器,就是链表。同时STL还提供了vector容器,也可以用于处理具有上述特点的数据,而且vector还支持随机访问(即可以不考虑上述第3点要求)。但vector在增加数据时,如果原先分配的连续内存已经用完则需要重新分配内存并把原有数据复制过去,这时它的插入数据的动作时间复杂度就不是O(1)了(不是常量时间了)。因而,链表适于处理的数据除了具有上述特点外,如果还有如下第4点特征,则以链表为优异选择了:

4、希望每次添加数据、删除数据的动作的时间复杂度都是O(1)的(常量时间)。

延伸阅读:

二、链表与数组的区别

数组:使用一块连续的内存空间地址去存放数据,例如:

int  a[5]={1,2,3,4,5}。突然我想继续加两个数据进去,但是已经定义好的数组不能往后加,只能通过定义新的数组

int b[7]={1,2,3,4,5,6,7}; 这样就相当不方便比较浪费内存资源,对数据的增删不好操作。

链表:使用多个不连续的内存空间去存储数据,可以节省内存资源(只有需要存储数据时,才去划分新的空间),对数据的增删比较方便。

声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。

猜你喜欢LIKE

制作大型软件一般选用什么类型的数据库以保护数据安全?

2023-10-15

access数据库中,查询设计怎么规定小数位数?

2023-10-15

云文件存储有哪些用途?

2023-10-15

最新文章NEW

怎么样用django将后台数据库表里面的内容以Excel表格的形式显示到网页中?

2023-10-15

数据库Union连接两张表之前,怎么判断要连接的另一张表是否存在?

2023-10-15

数据集市有哪些类型??

2023-10-15

相关推荐HOT

更多>>

快速通道 更多>>

最新开班信息 更多>>

网友热搜 更多>>