php数组和链表的区别总结


Posted in PHP onSeptember 20, 2019

PHP中数组和链表的区别

从逻辑结构来看

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

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

从内存存储来看

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

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

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

补充:

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

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

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

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

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

PHP 相关文章推荐
一些常用的php函数
Dec 06 PHP
DedeCMS dede_channeltype表字段注释
Apr 07 PHP
php 中文和编码判断代码
May 16 PHP
PHP以指定字段为索引返回数据库所取的数据数组
Jun 30 PHP
php获取数组元素中头一个数组元素值的实现方法
Dec 20 PHP
PHP实现格式化文件数据大小显示的方法
Jan 03 PHP
php上传文件并存储到mysql数据库的方法
Mar 16 PHP
MySql数据库查询结果用表格输出PHP代码示例
Mar 20 PHP
php多线程并发实现方法
Sep 30 PHP
php中strlen和mb_strlen用法实例分析
Nov 12 PHP
PHP实现将优酷土豆腾讯视频html地址转换成flash swf地址的方法
Aug 04 PHP
PHP实现的DES加密解密类定义与用法示例
Nov 02 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同时支持GIF、png、JPEG
2006/10/09 PHP
PHP限制HTML内容中图片必须是本站的方法
2015/06/16 PHP
PHP与Perl之间知识点区别整理
2019/03/19 PHP
js模拟select下拉菜单控件的代码
2013/05/08 Javascript
jquery实现可拖动DIV自定义保存到数据的实例
2013/11/20 Javascript
javascript实现的淘宝旅行通用日历组件用法实例
2015/08/03 Javascript
js支持键盘控制的左右切换立体式图片轮播效果代码分享
2015/08/26 Javascript
javascript数据结构之双链表插入排序实例详解
2015/11/25 Javascript
jQuery mobile 移动web(6)
2015/12/20 Javascript
jquery+json实现分页效果
2016/03/07 Javascript
jQuery中内容过滤器简单用法示例
2018/03/31 jQuery
webpack4的迁移的使用方法
2018/05/25 Javascript
Vue实现本地购物车功能
2018/12/05 Javascript
浅谈JavaScript面向对象--继承
2019/03/20 Javascript
JavaScript的级联函数用法简单示例【链式调用】
2019/03/26 Javascript
微信小程序实现打开并下载服务器上面的pdf文件到手机
2019/09/20 Javascript
jQuery操作动画完整实例分析
2020/01/10 jQuery
微信jssdk踩坑之签名错误invalid signature
2020/05/19 Javascript
three.js 利用uv和ThreeBSP制作一个快递柜功能
2020/08/18 Javascript
vue element-ui中table合计指定列求和实例
2020/11/02 Javascript
[02:30]DOTA2英雄基础教程 暗影恶魔
2013/12/17 DOTA
[01:08]DOTA2次级职业联赛 - Shield战队宣传片
2014/12/01 DOTA
[42:00]完美世界DOTA2联赛PWL S3 Phoenix vs INK ICE 第一场 12.13
2020/12/17 DOTA
py2exe 编译ico图标的代码
2013/03/08 Python
python tools实现视频的每一帧提取并保存
2020/03/20 Python
Python中变量的输入输出实例代码详解
2019/07/28 Python
python基础 range的用法解析
2019/08/23 Python
详解如何在pyqt中通过OpenCV实现对窗口的透视变换
2020/09/20 Python
快递业务员岗位职责
2014/01/06 职场文书
经营理念口号
2014/06/21 职场文书
金融与证券专业求职信
2014/06/22 职场文书
广告设计专业毕业生自我鉴定
2014/09/27 职场文书
党员年度个人总结
2015/02/14 职场文书
党支部半年考察意见
2015/06/01 职场文书
如何拟写通知正文?
2019/04/02 职场文书
导游词之潮音寺
2019/09/26 职场文书