php数组和链表的区别总结


Posted in PHP onSeptember 20, 2019

PHP中数组和链表的区别

从逻辑结构来看

1.、数组必须事先定义固定的长度(元素个数),不能适应数据动态地增减的情况。当数据增加时,可能超出原先定义的元素个数;当数据减少时,造成内存浪费;数组可以根据下标直接存取。

2、链表动态地进行存储分配,可以适应数据动态地增减的情况,且可以方便地插入、删除数据项。(数组中插入、删除数据项时,需要移动其它数据项,非常繁琐)链表必须根据next指针找到下一个元素。

从内存存储来看

1、(静态)数组从栈中分配空间, 对于程序员方便快速,但是自由度小。

2、链表从堆中分配空间, 自由度大但是申请管理比较麻烦 。

从上面的比较可以看出,如果需要快速访问数据,很少或不插入和删除元素,就应该用数组;相反, 如果需要经常插入和删除元素就需要用链表数据结构了。

补充:

数组是将元素在内存中连续存放,由于每个元素占用内存相同,可以通过下标迅速访问数组中任何元素。但是如果要在数组中增加一个元素,需要移动大量元素,在内存中空出一个元素的空间,然后将要增加的元素放在其中。

同样的道理,如果想删除一个元素,同样需要移动大量元素去填掉被移动的元素。如果应用需要快速访问数据,很少或不插入和删除元素,就应该用数组。

链表恰好相反,链表中的元素在内存中不是顺序存储的,而是通过存在元素中的指针联系到一起。比如:上一个元素有个指针指到下一个元素,以此类推,直到最后一个元素。

如果要访问链表中一个元素,需要从第一个元素开始,一直找到需要的元素位置。但是增加和删除一个元素对于链表数据结构就非常简单了,只要修改元素中的指针就可以了。如果应用需要经常插入和删除元素你就需要用链表数据结构了。

以上就是本次介绍的全部知识点内容,感谢大家的阅读和对三水点靠木的支持。

PHP 相关文章推荐
PHP 中的一些经验积累
Oct 09 PHP
php入门学习知识点六 PHP文件的读写操作代码
Jul 14 PHP
php使用fsockopen函数发送post,get请求获取网页内容的方法
Nov 15 PHP
php通过session防url攻击方法
Dec 10 PHP
php获取网页上所有链接的方法
Apr 03 PHP
WordPress中调试缩略图的相关PHP函数使用解析
Jan 07 PHP
Yii实现显示静态页的方法
Apr 25 PHP
Yii2第三方类库插件Imagine的安装和使用
Jul 06 PHP
基于php编程规范(详解)
Aug 17 PHP
PHP进阶学习之反射基本概念与用法分析
Jun 18 PHP
基于laravel-admin 后台 列表标签背景的使用方法
Oct 03 PHP
PHP SESSION跨页面传递失败解决方案
Dec 11 PHP
php输出反斜杠的实例方法
Sep 19 #PHP
php实现session共享的实例方法
Sep 19 #PHP
php进行md5加密简单实例方法
Sep 19 #PHP
php解决安全问题的方法实例
Sep 19 #PHP
PHP中16个高危函数整理
Sep 19 #PHP
php实例化一个类的具体方法
Sep 19 #PHP
PHP递归统计系统中代码行数
Sep 19 #PHP
You might like
全国FM电台频率大全 - 4 山西省
2020/03/11 无线电
PHP面向对象概念
2011/11/06 PHP
php中AES加密解密的例子小结
2014/02/18 PHP
php中try catch捕获异常实例详解
2014/11/21 PHP
分享10段PHP常用代码
2015/11/11 PHP
JS 用6N±1法求素数 实例教程
2009/10/20 Javascript
javascript学习之闭包分析
2010/12/02 Javascript
javascript中onmouse事件在div中失效问题的解决方法
2012/01/09 Javascript
Jquery 表单验证类介绍与实例
2013/06/09 Javascript
js实现通用的微信分享组件示例
2014/03/10 Javascript
实例讲解jquery与json的结合
2016/01/07 Javascript
详解jQuery中的deferred对象的使用(一)
2016/05/27 Javascript
解决JQuery全选/反选第二次失效的问题
2017/10/11 jQuery
vue使用pdfjs显示PDF可复制的实现方法
2018/12/14 Javascript
[06:21]2014DOTA2国际邀请赛 庆祝VG首阶段领跑;B叔为挣牛排半夜整理情报
2014/07/13 DOTA
Eclipse中Python开发环境搭建简单教程
2016/03/23 Python
详解Python中最难理解的点-装饰器
2017/04/03 Python
使用Python实现租车计费系统的两种方法
2018/09/29 Python
pygame实现俄罗斯方块游戏(AI篇1)
2019/10/29 Python
Python数据持久化存储实现方法分析
2019/12/21 Python
python语言中有算法吗
2020/06/16 Python
浅谈matplotlib 绘制梯度下降求解过程
2020/07/12 Python
pycharm 代码自动补全的实现方法(图文)
2020/09/18 Python
Django contrib auth authenticate函数源码解析
2020/11/12 Python
使用HTML5拍照示例代码
2013/08/06 HTML / CSS
杭州-DOTNET笔试题集
2013/09/25 面试题
班级道德讲堂实施方案
2014/02/24 职场文书
夫妻忠诚协议书范本
2014/11/17 职场文书
企业2014年度工作总结
2014/12/10 职场文书
2015元旦晚会主持人开场白+结束语
2014/12/14 职场文书
采购员岗位职责范本
2015/04/07 职场文书
中小企业员工手册范本
2015/05/14 职场文书
学生会任命书范本
2015/09/21 职场文书
怎样写好工作计划
2019/04/10 职场文书
redis中lua脚本使用教程
2021/11/01 Redis
详解pytorch创建tensor函数
2022/03/22 Python