顺序表和链表各自的优缺点
顺序表是将数据元素放到一块开辟的连续存储空间,相邻元素的逻辑地址也相邻(逻辑与物理统一)
在上面的图片中可以看到顺序表是在堆中是一块连续的内存空间
优点:1.空间利用率高(连续存放,命中率高)
2.查询可以通过索引直接查找,非常便利(随机访问)
缺点:1.插入和删除比较慢,每次插入都需要遍历元素来找到适当的位置进行插入和删除,
2.插入时需要判断是否需要扩容,扩容时会有额外的空间需求
3.存储的元素过多时要进行扩容,存储的元素过少时会造成额外的空间浪费,例如你的array.length=100,但是实际有效元素size=5,只有5个,剩下的空间无法利用起来,会造成空间浪费
从上面的图片可以看到链表并不是连续存储的,而是随机存放的,通过它的next域链接每个节点
链表是程序运行过程中动态的空间分配,只要存储器内存够用,就不会出现空间溢出的现象,相邻数据元素可随意存放
优点:1.插入和删除元素比较快,只需要改变相应元素的next域的指向
2.没有空间限制,存放元素比较自由,只要存储器有空间,就不会出现溢出问题,不用考虑扩容问题
缺点:1.不能随机访问,查找时需要从头遍历链表查找某个元素
2.需要占用额外的空间去存储next域。
在使用时如何去选择使用顺序表还是链表?
我们可以结合两者各自的优缺点去选择是使用链表还是顺序表
使用顺序表的一般情况:
1.需要频繁的去查找访问元素
2.事先知道顺序表的长度,并且需要不断的去查找或者访问元素,可以使用顺序表
使用链表的一般情况:
1.需要频繁的去进行增加和删除操作,对于链表来说进行这样的操作开销很小,这个时候可以选择链表
2.当不知道存储数据是多少时,为了防止不断的扩容和空间浪费,此时也可以选择链表。
顺序表和链表各自的优缺点相关推荐
- 比较顺序表和链表的优缺点
1.比较顺序表和链表的优缺点,他们分别在什么场景下使用它. 顺序表支持随机访问,单链表不支持随机访问. 顺序表插入/删除数据效率很低,时间复杂度为O(N)(除尾插尾删),单链表插入/删除效率更高,时间 ...
- 2.6顺序表和链表的优缺点(区别、特点)详解
顺序表和链表由于存储结构上的差异,导致它们具有不同的特点,适用于不同的场景.本节就来分析它们的特点,让读者明白 "在什么样的场景中使用哪种存储结构" 更能有效解决问题. 通过系统地 ...
- java数据结构与算法之顺序表与链表深入分析
转载请注明出处(万分感谢!): http://blog.csdn.net/javazejian/article/details/52953190 出自[zejian的博客] 关联文章: java数据结 ...
- 顺序表与链表结构及解析
目录 前言 一.顺序表和链表是什么? 二.顺序表和链表的结构分析 0.线性表 1.顺序表 1.1顺序表概念及结构 1.2顺序表功能的基本实现 3.链表 3.1 链表的概念及结构 3.2 链表的分类 前 ...
- 【数据结构】线性表4——顺序表和链表的比较
文章目录 顺序表和链表的比较 单链表.循环链表和双向链表的时间效率比较 顺序表和链表的优缺点比较 顺序表和链表的基本操作比较 实现线性表时,用顺序表还是链表好? 顺序表和链表的逻辑结构都是线性结构,都 ...
- Datawhale组队学习 Task02:顺序表和链表(2天)
Task02 顺序表和链表(2天) 1. 线性表的定义与操作 1.1 线性表的定义 线性表(Linear List)是由n(n >= 0)个相同类型的数据元素a1,a2,...,an 组成的有序 ...
- 顺序表、链表、双向循环链表
顺序表.链表.双向循环链表 SeqList.h #pragma once #include<stdio.h>#define ListSize 100 //线性表的最大长度 typedef ...
- C语言链表的转置算法,c语言编程集 数据结构 顺序表 点链表 数制转换 矩阵转置.doc...
c语言编程集 数据结构 顺序表 点链表 数制转换 矩阵转置 #include "stdio.h" #include "malloc.h" /*typedef s ...
- 8.基本数据结构-顺序表和链表
一.内存 - 计算机的作用:对数据进行存储和运算.首先我们需要知道我们目前使用的计算机都是二进制的计算机,就以为着计算机只可以存储和运算二进制的数据.例如下载好的一部电影,该电影可以存储到计算机中,计 ...
最新文章
- 为一月份开设的组队学习课程投票啦
- 隔空作画,握拳清屏,这个手部跟踪项目火了,在线可玩
- Java 基本功之(二)Java 面向对象
- 关于SAP Kyma在国内的落地情况
- 矩阵形状| 使用Python的线性代数
- html5shiv主要解决IE6-8 无法识别HTML5的新标签,父节点不能包裹子元素,以及应用CSS样式...
- C# Excel导入、导出
- 机器学习入门|线性回归(二)
- macos下如何配置ssh无密码登录
- Android布局文件xml
- iOS获取手机卡IMSI信息
- 关于未在本地计算机上注册“Microsoft.Jet.OleDb.4.0”提供程序的解决办法
- iframe中加载html页面,jQuery - 动态创建iframe并加载页面
- 【时间之外】Chrome浏览器缓存解析
- 人脸及指纹双重识别门禁系统
- HTML中温度符号的输入
- 双硬盘双系统win10+manjaro-kde搭建
- 【算法设计与分析】(6)算24点问题(回溯法)
- Java基础:宾馆管理系统(一)
- AtCoder 001 A BBQ Easy
热门文章
- 同花顺显示无法与服务器建立联系,【图】同花顺不能登入的试试这个服务器(已失效)_同花顺_股票软件技术交流论坛_理想论坛 - 股票论坛...
- 计算机图片组合快捷键,10个实用的Win10组合快捷键技巧,学完你就是大神啦
- 题目:下列关于构造方法的叙述中,错误的是( )。
- SQL查询某一字段重复的数据
- 安卓应用测试MonkeyMonkeyScriptMonkeyRunnerpyhton性能工具脚本
- 模拟电磁炮国一设计资料【2019电赛H题国一作品】
- 2021年10月、11月总结
- Python3处理excel图表
- 经过一段时间的努力和研究,开心农场外挂助手终于小有成就(欢迎大家与我交流)
- 线上商城的抢购设计简析