链表和数组的区别

     链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。

     数组是一组具有相同类型和名称的变量的集合,是用来存储一组相同类型数据的数据结构。其中每一项都具有相同的基本数据类型、类或者是父类。

       链表有单链表和双链表;数组有一维数组和多维数组(数组的数组、数组的数组的数组.....) 。

 

 

 

数组和链表的区别:

1.数组在内存中是逐个放的,数组的连续(索引号连续)元素的内存地址是连续的;而链表的每个节点没有相对固定的位置关系,链表分配地址时,是在内存的空闲区域,随即分配内存地址的,也就是说链表的上一个节点和下一个节点的内存地址不相邻。

 

2.数组一经声明后,其大小就确定了,不能再扩充其大小。而链表则可以在已有的节点后面添加节点,来扩充其大小,也可以删除其中的某一个节点,缩短链表的大小。数组赋值后,可以改变某一个元素的值,而链表则不可以。另外,数组的各个元素的可以进行排序,链表则只能插入或者删除节点,不能改变任意改变节点的位置。

 

3.链表较数组更灵活,但是空间和时间额外耗费较大;数组大小固定,但是操作不灵活,而且容易浪费空间,但是时间耗费较小,尤其是元素变化不大的时候效率很高。双向链表比单向链表更灵活,但是空间耗费也更大。

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值