精华内容
下载资源
问答
  • 数组和链表各自优缺点

    千次阅读 2018-03-16 22:57:18
    (1)数组:固定长度,减小内存浪费,方便遍历(通过下标存取),删除操作后面依次前移,插入操作依次后移, 可能遇到超出原定义数组大小,栈分配空间。(2)链表:动态分配存储,方便增减\插入\删除操作、遍历通过...

    (1)数组:固定长度,减小内存浪费,方便遍历(通过下标存取),删除操作后面依次前移,插入操作依次后移,

                        可能遇到超出原定义数组大小,分配空间。

    (2)链表:动态分配存储,方便增减\插入\删除操作、遍历通过指针依次进行,分配空间。
    展开全文
  • 1.数组 优点:随机访问快 缺点:插入删除比较慢 2.链表 优点:它允许快速的插入删除 缺点:随机访问却比较慢

    1.数组
    优点:随机访问快
    缺点:插入删除比较慢

    2.链表
    优点:它允许快速的插入和删除
    缺点:随机访问却比较慢

    展开全文
  • 数组和链表是两种基本的数据结构,他们在内存存储上的表现不一样,所以也有各自的特点 数组 一、数组的特点 1.在内存中,数组是一块连续的区域 2.数组需要预留空间 在使用前需要提前申请所占内存的...

    数组和链表是两种基本的数据结构,他们在内存存储上的表现不一样,所以也有各自的特点

    数组

    一、数组的特点

    1.在内存中,数组是一块连续的区域
    2.数组需要预留空间

    在使用前需要提前申请所占内存的大小,这样不知道需要多大的空间,就预先申请可能会浪费内存空间,即数组空间利用率低
    ps:数组的空间在编译阶段就需要进行确定,所以需要提前给出数组空间的大小(在运行阶段是不允许改变的)

    3.在数组起始位置处,插入数据和删除数据效率低。

    插入数据时,待插入位置的的元素和它后面的所有元素都需要向后搬移
    删除数据时,待删除位置后面的所有元素都需要向前搬移

    4.随机访问效率很高,时间复杂度可以达到O(1)

    因为数组的内存是连续的,想要访问那个元素,直接从数组的首地址处向后偏移就可以访问到了

    5.数组开辟的空间,在不够使用的时候需要扩容,扩容的话,就会涉及到需要把旧数组中的所有元素向新数组中搬移
    6.数组的空间是从栈分配的

    二、数组的优点

    随机访问性强,查找速度快,时间复杂度为O(1)

    三、数组的缺点

    1.头插和头删的效率低,时间复杂度为O(N)
    2.空间利用率不高
    3.内存空间要求高,必须有足够的连续的内存空间
    4.数组空间的大小固定,不能动态拓展

    链表

    一、链表的特点

    1.在内存中,元素的空间可以在任意地方,空间是分散的,不需要连续
    2.链表中的元素都会两个属性,一个是元素的值,另一个是指针,此指针标记了下一个元素的地址

    每一个数据都会保存下一个数据的内存的地址,通过此地址可以找到下一个数据

    3.查找数据时效率低,时间复杂度为O(N)

    因为链表的空间是分散的,所以不具有随机访问性,如要需要访问某个位置的数据,需要从第一个数据开始找起,依次往后遍历,直到找到待查询的位置,故可能在查找某个元素时,时间复杂度达到O(N)

    4.空间不需要提前指定大小,是动态申请的,根据需求动态的申请和删除内存空间,扩展方便,故空间的利用率较高
    5.任意位置插入元素和删除元素效率较高,时间复杂度为O(1)
    6.链表的空间是从堆中分配的

    二、链表的优点

    1.任意位置插入元素和删除元素的速度快,时间复杂度为O(1)
    2.内存利用率高,不会浪费内存
    3.链表的空间大小不固定,可以动态拓展

    三、链表的缺点

    随机访问效率低,时间复杂度为0(N)

    这里写图片描述

    综上:

    对于想要快速访问数据,不经常有插入和删除元素的时候,选择数组
    对于需要经常的插入和删除元素,而对访问元素时的效率没有很高要求的话,选择链表
    展开全文
  • 数组和链表是两种基本的数据结构,他们在内存存储上的表现不一样,所以也有各自的特点 数组 一、数组的特点 1.在内存中,数组是一块连续的区域 2.数组需要预留空间 在使用前需要提前申请所占内存的大小,这样不...

    数组和链表是两种基本的数据结构,他们在内存存储上的表现不一样,所以也有各自的特点

    数组

    一、数组的特点

    1.在内存中,数组是一块连续的区域 
    2.数组需要预留空间

    在使用前需要提前申请所占内存的大小,这样不知道需要多大的空间,就预先申请可能会浪费内存空间,即数组空间利用率低 
    ps:数组的空间在编译阶段就需要进行确定,所以需要提前给出数组空间的大小(在运行阶段是不允许改变的)

    3.在数组起始位置处,插入数据和删除数据效率低。

    插入数据时,待插入位置的的元素和它后面的所有元素都需要向后搬移 
    删除数据时,待删除位置后面的所有元素都需要向前搬移

    4.随机访问效率很高,时间复杂度可以达到O(1)

    因为数组的内存是连续的,想要访问那个元素,直接从数组的首地址处向后偏移就可以访问到了

    5.数组开辟的空间,在不够使用的时候需要扩容,扩容的话,就会涉及到需要把旧数组中的所有元素向新数组中搬移 
    6.数组的空间是从栈分配的

    二、数组的优点

    随机访问性强,查找速度快,时间复杂度为O(1)

    三、数组的缺点

    1.头插和头删的效率低,时间复杂度为O(N) 
    2.空间利用率不高 
    3.内存空间要求高,必须有足够的连续的内存空间 
    4.数组空间的大小固定,不能动态拓展
     

    链表

    一、链表的特点

    1.在内存中,元素的空间可以在任意地方,空间是分散的,不需要连续 
    2.链表中的元素都会有两个属性,一个是元素的值,另一个是指针,此指针标记了下一个元素的地址

    每一个数据都会保存下一个数据的内存的地址,通过此地址可以找到下一个数据

    3.查找数据时效率低,时间复杂度为O(N)

    因为链表的空间是分散的,所以不具有随机访问性,如要需要访问某个位置的数据,需要从第一个数据开始找起,依次往后遍历,直到找到待查询的位置,故可能在查找某个元素时,时间复杂度达到O(N)

    4.空间不需要提前指定大小,是动态申请的,根据需求动态的申请和删除内存空间,扩展方便,故空间的利用率较高 
    5.任意位置插入元素和删除元素效率较高,时间复杂度为O(1) 
    6.链表的空间是从堆中分配的

    二、链表的优点

    1.任意位置插入元素和删除元素的速度快,时间复杂度为O(1) 
    2.内存利用率高,不会浪费内存 
    3.链表的空间大小不固定,可以动态拓展

    三、链表的缺点

    随机访问效率低,时间复杂度为0(N)

    数组和链表操作空间复杂度表格对比图

    综上:

    对于想要快速访问数据,不经常有插入和删除元素的时候,选择数组。

    对于需要经常的插入和删除元素,而对访问元素时的效率没有很高要求的话,选择链表。

    参考链接:https://blog.csdn.net/dangzhangjing97/article/details/81699050

    展开全文
  • 数组和链表区别和优缺点总结!

    万次阅读 多人点赞 2018-08-24 09:29:24
    数组和链表是两种基本的数据结构,他们在内存存储上的表现不一样,所以也有各自的特点。 链表中各结点在内存中的存放位置是任意的。  链表数组的主要区别 (1)数组的元素个数是固定的,而组成链表的结点个数可...
  • 数组和链表区别和各自优缺点

    千次阅读 2019-06-24 18:24:36
    数组和链表是两种基本的数据结构,他们在内存存储上的表现不一样,所以也有各自的特点和优缺点数组的特点 在内存中,数组是一块连续的区域。 拿上面的看电影来说,这几个人在电影院必须坐在一起。 数组需要预留...
  • 数组和链表是两种基本的数据结构,他们在内存存储上的表现不一样,所以也有各自的特点。 大致总结一下特点和区别,拿几个人一起去看电影时坐座位为例。 数组的特点 在内存中,数组是一块连续的区域。 拿上面的看...
  • 数组和链表是两种基本的数据结构,他们在内存存储上的表现不一样,所以也有各自的特点。 链表中各结点在内存中的存放位置是任意的。 链表数组的主要区别 (1)数组的元素个数是固定的,而组成链表的结点个数可按...
  • 概述  数组 是将元素在内存中连续存放,由于每个元素占用内存相同,可以通过下标迅速访问数组中任何...如果应用需要快速访问数据,很少插入删除元素,就应该用数组。  链表 中的元素在内存中不是顺序存储的,而
  • 数组和链表是两种基本的数据结构,他们在内存存储上的表现不一样,所以也有各自的特点。 链表中各结点在内存中的存放位置是任意的。 链表数组的主要区别 (1)数组的元素个数是固定的,而组成链表的结点个数可按...
  • 数组链表、Hash的优缺点

    千次阅读 2017-10-17 11:44:44
    IOS笔试题总结(数组链表、Hash的优缺点) 转载2016-04-22 17:08:33 数组链表、Hash的优缺点: 1、数组是将元素在内存中连续存放。  链表中的元素在内存中不是顺序存储的,而是通过存在元素中...
  • [数据结构] 数组链表优缺点和区别

    万次阅读 多人点赞 2016-11-15 16:25:00
    概述  数组 是将元素在内存中连续存放,由于每个元素占用内存相同,可以通过下标迅速访问数组中...如果应用需要快速访问数据,很少插入删除元素,就应该用数组。  链表 中的元素在内存中不是顺序存储的,而
  • 链表 链表是一种常见的数据组织形式,它采用动态分配内存的形式实现。需要时可以用new分配内存空间,不需要时用delete将已分配的空间释放,不会造成内存空间的浪费。 一、 从逻辑结构来看 数组必须事先定义固定的...
  • 数组链表优缺点

    2018-08-10 11:52:59
    数组的特点 在内存中,数组是一块连续的区域。 拿上面的看电影来说,这几个人在电影院必须坐在一起。 数组需要预留空间,在使用前要先申请占内存的大小,可能会浪费内存空间。 比如看电影时,为了保证10个人能坐在...
  • 数组和链表区别

    2021-10-12 18:42:11
    数组和链表区别以及各自优缺点 1.数组和链表区别: (1)数组的元素个数是固定的,而链表的结点个数可按需要增减。 (2)数组元素的存储单元在定义时分配,链表节点的存储单元在执行时动态向系统申请。 (3)...
  • 参数变量不会被垃圾回收机制回收 数组和链表区别各自优缺点 主要区别 数组的元素个数是固定的,而组成链表的结点个数可按需要增减 数组元素的存诸单元在数组定义时分配,链表结点的存储单元在程序执行时动态向...
  • 数组和链表

    2018-09-27 11:34:20
    数组和链表 1. 内存的工作原理 ​ 计算机将内存会分为很多格子(类似书柜),每个格子都会对应自己地址,就是内存地址 ​ 每当计算机接收到存储命令时,计算机会告诉你一个内存地址,表示你的东西存在这个地址。 ​ 当...
  • 数组和链表区别以及应用场景

    千次阅读 2019-10-26 15:15:12
    数组和链表区别以及应用场景 首先我们要先理解什么是数组和链表 在计算机中要对给定的数据集进行若干处理,首要任务是把数据集的一部分(当数据量非常大时,可能只能一部分一部分地读取数据到内存中来处理)或...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 16,334
精华内容 6,533
关键字:

数组和链表的区别各自优缺点