php数组和链表的区别总结


Posted in PHP onSeptember 20, 2019

PHP中数组和链表的区别

从逻辑结构来看

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

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

从内存存储来看

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

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

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

补充:

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

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

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

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

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

PHP 相关文章推荐
php chr() ord()中文截取乱码问题解决方法
Sep 08 PHP
PHP 身份证号验证函数
May 07 PHP
php 更新数据库中断的解决方法
Jun 05 PHP
PHP 组件化编程技巧
Jun 06 PHP
获取远程文件大小的php函数
Jan 11 PHP
php的array_multisort()使用方法介绍
May 16 PHP
php中使用exec,system等函数调用系统命令的方法(不建议使用,可导致安全问题)
Sep 07 PHP
php实现分页工具类分享
Jan 09 PHP
php session实现多级目录存放实现代码
Feb 03 PHP
什么是OneThink oneThink后台添加插件步骤
Apr 13 PHP
Yii2中SqlDataProvider用法示例
Sep 22 PHP
php判断是否为ajax请求的方法
Nov 29 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获取谷歌PR值算法,附上php查询PR值代码示例
2011/12/25 PHP
php读取图片内容并输出到浏览器的实现代码
2013/08/08 PHP
PHP中的按位与和按位或操作示例
2014/01/27 PHP
用JavaScript 处理 URL 的两个函数代码
2007/08/13 Javascript
11款基于Javascript的文件管理器
2009/10/25 Javascript
jquery ui 1.7 ui.tabs 动态添加与关闭(按钮关闭+双击关闭)
2010/04/01 Javascript
JavaScript中的Math.E属性使用详解
2015/06/12 Javascript
JavaScript类型系统之基本数据类型与包装类型
2016/01/06 Javascript
Js类的静态方法与实例方法区分及jQuery拓展的两种方法
2016/06/03 Javascript
js判断radiobuttonlist的选中值显示/隐藏其它模块的实现方法
2016/08/25 Javascript
详解使用vue-router进行页面切换时滚动条位置与滚动监听事件
2017/03/08 Javascript
Angularjs使用指令做表单校验的方法
2017/03/31 Javascript
ES6实现的遍历目录函数示例
2017/04/07 Javascript
详解Vue 非父子组件通信方法(非Vuex)
2017/05/24 Javascript
jquery请求servlet实现ajax异步请求的示例
2017/06/03 jQuery
JavaScript实现获取select下拉框中第一个值的方法
2018/02/06 Javascript
[01:29:17]RNG vs Liquid 2019国际邀请赛淘汰赛 败者组 BO3 第二场 8.23
2019/09/05 DOTA
python中from module import * 的一个坑
2014/07/20 Python
Python使用py2exe打包程序介绍
2014/11/20 Python
Python实现的简单文件传输服务器和客户端
2015/04/08 Python
python实现颜色空间转换程序(Tkinter)
2015/12/31 Python
一个基于flask的web应用诞生 用户注册功能开发(5)
2017/04/11 Python
R语言 vs Python对比:数据分析哪家强?
2017/11/17 Python
python PyTorch参数初始化和Finetune
2018/02/11 Python
python得到单词模式的示例
2018/10/15 Python
详解pyenv下使用python matplotlib模块的问题解决
2018/11/29 Python
如何利用Python分析出微信朋友男女统计图
2019/01/25 Python
Python扫描端口的实现
2021/01/25 Python
巴西最大的家具及装饰用品店:Mobly
2017/10/11 全球购物
BSTN意大利:德国街头和运动文化高品质商店
2020/12/22 全球购物
最新大学毕业求职简历的自我评价
2013/10/18 职场文书
施工人员岗位职责
2013/12/12 职场文书
绿色家庭事迹材料
2014/05/01 职场文书
安全环保演讲稿
2014/08/28 职场文书
一般基层干部群众路线教育实践活动个人对照检查材料
2014/11/04 职场文书
2019年七夕情人节浪漫祝福语大全!
2019/08/08 职场文书