php数组和链表的区别总结


Posted in PHP onSeptember 20, 2019

PHP中数组和链表的区别

从逻辑结构来看

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

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

从内存存储来看

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

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

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

补充:

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

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

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

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

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

PHP 相关文章推荐
Classes and Objects in PHP5-面向对象编程 [1]
Oct 09 PHP
PHP新手上路(七)
Oct 09 PHP
实用函数7
Nov 08 PHP
PHP strtok()函数的优点分析
Mar 02 PHP
php下批量挂马和批量清马代码
Feb 27 PHP
php过滤HTML标签、属性等正则表达式汇总
Sep 22 PHP
php查看当前Session的ID实例
Mar 16 PHP
php实现的简易扫雷游戏实例
Jul 09 PHP
PHP中overload与override的区别
Feb 13 PHP
利用PHP扩展Xhprof分析项目性能实践教程
Sep 05 PHP
PHP的PDO错误与错误处理
Jan 27 PHP
PHP数组遍历的几种常见方式总结
Feb 15 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中的ini配置原理详解
2014/10/14 PHP
php基于ob_start(ob_gzhandler)实现网页压缩功能的方法
2017/02/18 PHP
PHP与以太坊交互详解
2018/08/24 PHP
实例讲解PHP表单处理
2019/02/15 PHP
jquery text()要注意啦
2009/10/30 Javascript
jquery 使用点滴函数代码
2011/05/20 Javascript
Jquery同辈元素选中/未选中效果的实例代码
2013/08/01 Javascript
JS实现鼠标单击与双击事件共存
2014/03/08 Javascript
JavaScript 作用域链解析
2014/11/13 Javascript
HTML5之WebSocket入门3 -通信模型socket.io
2015/08/21 Javascript
js实现滚动条滚动到页面底部继续加载
2015/12/19 Javascript
Bootstrap每天必学之按钮(Button)插件
2016/04/25 Javascript
js滚轮事件兼容性问题需要注意哪些
2016/11/15 Javascript
Javascript同时声明一连串(多个)变量的方法
2017/01/23 Javascript
利用js定义一个导航条菜单
2017/03/14 Javascript
JS+canvas实现的五子棋游戏【人机大战版】
2017/07/19 Javascript
Vue-Access-Control 前端用户权限控制解决方案
2017/12/01 Javascript
React中如何引入Angular组件详解
2018/08/09 Javascript
微信小程序学习笔记之获取位置信息操作图文详解
2019/03/29 Javascript
mpvue微信小程序的接口请求fly全局拦截代码实例
2019/11/13 Javascript
[01:20:30]OG vs LGD 2018国际邀请赛淘汰赛BO3 第四场 8.26
2018/08/30 DOTA
python发腾讯微博代码分享
2014/01/10 Python
Python连接mssql数据库编码问题解决方法
2015/01/01 Python
Python实现完整的事务操作示例
2017/06/20 Python
Python中进程和线程的区别详解
2017/10/29 Python
Python深拷贝与浅拷贝用法实例分析
2019/05/05 Python
HTML5 通过Vedio标签实现视频循环播放的示例代码
2020/08/05 HTML / CSS
日本高端护肤品牌:Tatcha
2016/08/29 全球购物
美国蔬菜和植物种子公司:Burpee
2017/02/01 全球购物
N.Peal官网:来自伦敦的高档羊绒品牌
2018/10/29 全球购物
世界顶级户外运动品牌折扣网站:LeftLane Sports
2019/06/12 全球购物
工业自动化专业自荐信范文
2014/04/10 职场文书
低碳生活倡议书
2014/04/14 职场文书
图书馆标语
2014/06/19 职场文书
2014年干部培训工作总结
2014/12/17 职场文书
公司车辆管理制度
2015/08/04 职场文书