美文网首页
数组和链表的理解,及各自的优缺点

数组和链表的理解,及各自的优缺点

作者: 路得自己走 | 来源:发表于2020-10-29 16:11 被阅读0次

数组和链表的理解,及各自的优缺点

链表

链表是一种常见的数据组织形式,它采用动态分配内存的形式实现。需要时可以用new分配内存空间,不需要时用delete将已分配的空间释放,不会造成内存空间的浪费。

一、 从逻辑结构来看

  1. 数组必须事先定义固定的长度(元素个数),不能适应数据动态地增减的情况。当数据增加时,可能超出原先定义的元素个数;当数据减少时,造成内存浪费。
  2. 链表动态地进行存储分配,可以适应数据动态地增减的情况,且可以方便地插入、删除数据项。(数组中插入、删除数据项时,需要移动其它数据项)

二、从内存存储来看

  1. (静态)数组从栈中分配空间,对于程序员方便快速,但是自由度小。
  2. 链表从堆中分配空间,自由度大但是申请管理比较麻烦。

三、其他区别对比

  1. 数组中的数据在内存中的按顺序存储的,而链表是随机存储的!

  2. 要访问数组中的元素可以按下标索引来访问,速度比较快,如果对他进行插入操作的话,就得移动很多元素,所以对数组进行插入操作效率很低!

  3. 由于连表是随机存储的,链表在插入,删除操作上有很高的效率(相对数组),如果要访问链表中的某个元素的话,那就得从链表的头逐个遍历,直到找到所需要的元素为止,所以链表的随机访问的效率就比数组要低。

  4. 数组在内存中开辟连续的一块区域,如果一个数据要两个内存单元,一组5个数据10个单元就够了,无需标记其地址,因为数组定义时候标顶了第一个原许的地址,其他四个都知道了。

  5. 链表可可以是连续的,也可以是不连续的,但一般都是不连续的,尽管在内存中是连续的,我们也不把他当作是连续的,而是把他当作是不连续的,因为如果把他当作是连续的,不如当作是数组了,在某些情况下。一链5个数据,如果每个数据本身用2个内存单元,那么10个单元是不够的,因为每个数据都要表示出下个数据在哪里,所以一个数据本身用2个单元,再用1个单元表示此链下一个数据在什么地址。

相关文章

  • 数组和链表的理解,及各自的优缺点

    数组和链表的理解,及各自的优缺点[https://www.cnblogs.com/zxfei/p/11455134...

  • HashMap深入研究

    一、概述 前面我们分析了数组和链表,数据结构中用数组和链表来实现对数据的存储,然而他们各自都有明显的优缺点。数组存...

  • 数组及链表

    数组和链表的区别及优缺点: 数组:有n个数的数组,知道起始位置后直接就能查找到里面的元素 链表:有n个数的链表,知...

  • 数据结构——链表

    目录 1、属性 2、链表和数组的区别 2.1、数组概述 2.2、数组和链表优缺点 2.3、链表和数组的比较 3、单...

  • 数据结构与算法系列——链表详解

    上次我们简单的对比了一下数组和链表的区别和各自的优缺点,今天我们来详细看一下链表这个结构。链表的结构五花八门,我们...

  • 一文搞定常见的链表问题

    相爱相杀好基友——数组与链表 作为线性表的两种存储方式 —— 链表和数组,这对相爱相杀的好基友有着各自的优缺点。接...

  • 大话数据结构 - 链表

    代码GitHub地址 链表概述 数组和链表都是线性存储结构的基础实现,栈和队列都是线性存储结构的应用 数组优缺点 ...

  • LinkedList分析及实现

    一. 简单总结 LinkedList底层实现方式是双向链表 链表的优缺点(当然是和数组比较而言)单链表的优缺点- ...

  • 从零开始,使用JS一步步理解并实现链表

    文章首发于 www.shaotianyu.com 一、数组和链表优缺点 1.1、数组(Array) 1.1.1 数...

  • 链表的理解和使用

    前言 本篇文章主要解决如下几个问题: 链表和数组相比有哪些不同点?它的优缺点是什么? 链表有哪些类别?它们各自的优...

网友评论

      本文标题:数组和链表的理解,及各自的优缺点

      本文链接:https://www.haomeiwen.com/subject/yazkvktx.html