php数组和链表的区别总结


Posted in PHP onSeptember 20, 2019

PHP中数组和链表的区别

从逻辑结构来看

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

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

从内存存储来看

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

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

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

补充:

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

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

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

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

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

PHP 相关文章推荐
PHP安装全攻略:APACHE
Oct 09 PHP
ThinkPHP php 框架学习笔记
Oct 30 PHP
PHP中读写文件实现代码
Oct 20 PHP
php加密解密实用类分享
Jan 07 PHP
PHP正则表达式 /i, /is, /s, /isU等介绍
Oct 23 PHP
php中call_user_func函数使用注意事项
Nov 21 PHP
php使用PDO方法详解
Dec 27 PHP
php强制下载文件函数
Aug 24 PHP
Smarty日期时间操作方法示例
Nov 15 PHP
Laravel中获取路由参数Route Parameters的五种方法示例
Sep 29 PHP
PHP基于rabbitmq操作类的生产者和消费者功能示例
Jun 16 PHP
PHP简单实现图片格式转换(jpg转png,gif转png等)
Oct 30 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
PHP fgetcsv 定义和用法(附windows与linux下兼容问题)
2012/05/29 PHP
在PHP中设置、使用、删除Cookie的解决方法
2013/05/06 PHP
让ThinkPHP支持大小写url地址访问的方法
2014/10/31 PHP
PHP之sprintf函数用法详解
2014/11/12 PHP
Thinkphp5结合layer弹窗定制操作结果页面
2017/07/07 PHP
用javascript连接access数据库的方法
2006/11/17 Javascript
关于jquery ajax 调用带参数的webservice返回XML数据一个小细节
2012/07/31 Javascript
JQuery入门——事件切换之hover()方法应用介绍
2013/02/05 Javascript
JavaScript设计模式之建造者模式介绍
2014/12/28 Javascript
Angularjs实现多个页面共享数据的方式
2016/03/29 Javascript
jQuery animate easing使用方法图文详解
2016/06/17 Javascript
JS+HTML5实现上传图片预览效果完整实例【测试可用】
2017/04/20 Javascript
让你彻底掌握es6 Promise的八段代码
2017/07/26 Javascript
解决angularjs service中依赖注入$scope报错的问题
2018/10/02 Javascript
js实现简单的打印表格
2020/01/15 Javascript
node爬取新型冠状病毒的疫情实时动态
2020/02/06 Javascript
JavaScript this关键字的深入详解
2021/01/14 Javascript
[01:42:49]DOTA2-DPC中国联赛 正赛 iG vs PSG.LGD BO3 第一场 2月26日
2021/03/11 DOTA
Python通过websocket与js客户端通信示例分析
2014/06/25 Python
python遍历目录的方法小结
2016/04/28 Python
详解python string类型 bytes类型 bytearray类型
2017/12/16 Python
微信小程序跳一跳游戏 python脚本跳一跳刷高分技巧
2018/01/04 Python
Python2手动安装更新pip过程实例解析
2020/07/16 Python
应用电子技术专业个人求职信
2013/09/21 职场文书
领导检查欢迎词
2014/01/14 职场文书
学校七一活动方案
2014/01/19 职场文书
怎样拟定创业计划书
2014/05/01 职场文书
小学师德师风演讲稿
2014/09/02 职场文书
学校党委副书记个人对照检查材料思想汇报
2014/09/28 职场文书
怎么写工作检讨书
2014/11/16 职场文书
公司庆典欢迎词
2015/01/26 职场文书
幼儿园六一儿童节活动总结
2015/02/10 职场文书
大学生个人学年总结
2015/02/15 职场文书
员工辞职信怎么写
2015/02/27 职场文书
小学毕业感言200字
2015/07/30 职场文书
Python使用psutil库对系统数据进行采集监控的方法
2021/08/23 Python