链表与数组的本质差别

数组的特点

1、在存储的方式上面数组在内存中是连续的,相邻的可以通过下标的方式进行访问。

2、在存储的空间长度上面有区别,数组在创建的时候就固定大小,在使用的时候大多数情况要对数组进行扩容,对于扩容的倍数是根据存储数据的大小不同而不同,但是一般情况下是按照原来的2倍进行扩容。

3、在使用的时候我们能通过下标的方式直接访问数组之中的每个数据访问的速度就是O(1)非常的方便。

4、在使用数组的插入和删除操作时要对数组的其他元素进行移动,时间的复杂度是O(N)。

5、在空间浮渣度上数组的空间复杂度一般比链表的复杂度小。

链表的特点

1、链表在我们的现象之中是连续存储的,但是在真实的物理空间上面他是不连续的是通过链表之中的指针进行指向的。

2、链表在空间的长度上面就和数组不一样了,链表的扩容是使用malloc扩容出一个个的节点,有多少扩多少。

3、对单向链表来说每次的访问都必须要对前面的每个节点都进行访问,通过前面一个节点的指针的指向去进行数据的访问。

4、在插入和删除操作时需要找到指针对指针的指向进行修改即可,复杂度是O(1)。

5、在空间浮渣度上数组的空间复杂度一般比链表的复杂度要小一点,因为链表需要存储链表指针的原因。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值