php数组和链表的区别总结


Posted in PHP onSeptember 20, 2019

PHP中数组和链表的区别

从逻辑结构来看

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

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

从内存存储来看

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

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

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

补充:

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

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

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

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

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

PHP 相关文章推荐
PHP date函数参数详解
Nov 27 PHP
一些 PHP 管理系统程序中的后门
Aug 05 PHP
PHP在字符断点处截断文字的实现代码
Apr 21 PHP
PHP中替换键名的简易方法示例详解
Jan 07 PHP
php多文件上传下载示例分享
Feb 20 PHP
php简单实现查询数据库返回json数据
Apr 16 PHP
PHP register_shutdown_function()函数的使用示例
Jun 23 PHP
Thinkphp5.0自动生成模块及目录的方法详解
Apr 17 PHP
Yii2选项卡的简单使用
May 26 PHP
PHP读取CSV大文件导入数据库的实例
Jul 24 PHP
PHP批斗大会之缺失的异常详解
Jul 09 PHP
PHP实现基本留言板功能原理与步骤详解
Mar 26 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实现的MySQL通用查询程序
2007/03/11 PHP
基于MySQL分区性能的详细介绍
2013/05/02 PHP
微信封装的调用微信签名包的类库
2017/06/08 PHP
Laravel框架处理用户的请求操作详解
2019/12/20 PHP
PhpStorm+xdebug+postman调试技巧分享
2020/09/15 PHP
Javascript的数组与字典用法与遍历对象的属性技巧
2012/11/07 Javascript
form表单中去掉默认的enter键提交并绑定js方法实现代码
2013/04/01 Javascript
浏览器页面区域大小的js获取方法
2013/09/21 Javascript
jQuery Timelinr实现垂直水平时间轴插件(附源码下载)
2016/02/16 Javascript
JavaScript ES6的新特性使用新方法定义Class
2016/06/28 Javascript
详解Vue2+Echarts实现多种图表数据可视化Dashboard(附源码)
2017/03/21 Javascript
Ionic2调用本地SQlite实例
2017/04/22 Javascript
react-native 封装选择弹出框示例(试用ios&android)
2017/07/11 Javascript
vue-cli的eslint相关用法
2017/09/29 Javascript
js+html获取系统当前时间
2017/11/10 Javascript
Vue动态加载异步组件的方法
2018/11/21 Javascript
Pyramid添加Middleware的方法实例
2013/11/27 Python
Python爬虫模拟登录带验证码网站
2016/01/22 Python
对tensorflow 的模型保存和调用实例讲解
2018/07/28 Python
python实现RabbitMQ的消息队列的示例代码
2018/11/08 Python
python list数据等间隔抽取并新建list存储的例子
2019/11/27 Python
pytorch 实现删除tensor中的指定行列
2020/01/13 Python
Python利用逻辑回归分类实现模板
2020/02/15 Python
Python3爬虫关于识别检验滑动验证码的实例
2020/07/30 Python
python中count函数知识点浅析
2020/12/17 Python
TUMI马来西亚官方网站:国际领先的高品质商旅箱包品牌
2018/04/26 全球购物
《九色鹿》教学反思
2014/02/27 职场文书
南京市纪委监察局整改方案
2014/09/16 职场文书
学校纪律作风整改措施思想汇报
2014/10/11 职场文书
2014年银行信贷员工作总结
2014/12/08 职场文书
人事文员岗位职责
2015/02/04 职场文书
年度考核登记表个人总结
2015/03/06 职场文书
小学语文国培研修日志
2015/11/13 职场文书
2019生态环境保护倡议书!
2019/07/03 职场文书
SpringBoot集成Redis的思路详解
2021/10/16 Redis
详解 TypeScript 枚举类型
2021/11/02 Javascript