php数组和链表的区别总结


Posted in PHP onSeptember 20, 2019

PHP中数组和链表的区别

从逻辑结构来看

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

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

从内存存储来看

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

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

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

补充:

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

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

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

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

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

PHP 相关文章推荐
PHP中的cookie
Nov 26 PHP
php in_array 函数使用说明与in_array需要注意的地方说明
Apr 13 PHP
解析smarty 截取字符串函数 truncate的用法介绍
Jun 20 PHP
如何使用“PHP” 彩蛋进行敏感信息获取
Aug 07 PHP
解密ThinkPHP3.1.2版本之独立分组功能应用
Jun 19 PHP
php的ZipArchive类用法实例
Oct 20 PHP
PHP实现通过中文字符比率来判断垃圾评论的方法
Oct 20 PHP
Zend Framework实现多服务器共享SESSION数据的方法
Mar 22 PHP
PHP基于递归算法解决兔子生兔子问题
May 11 PHP
PHP封装XML和JSON格式数据接口操作示例
Mar 06 PHP
Laravel5.1 框架控制器基础用法实例分析
Jan 04 PHP
php多进程中的阻塞与非阻塞操作实例分析
Mar 04 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教程 变量定义
2009/10/23 PHP
php根据日期判断星座的函数分享
2014/02/13 PHP
php字符比较函数similar_text、strnatcmp与strcasecmp用法分析
2014/11/18 PHP
php7 错误处理机制修改实例分析
2020/05/25 PHP
超级强大的表单验证
2006/06/26 Javascript
javascript对象之内置对象Math使用方法
2010/04/16 Javascript
JS读取cookies信息(记录用户名)
2012/01/10 Javascript
jquery 绑定回车动作扑捉回车键触发的事件
2014/03/26 Javascript
jQuery显示和隐藏 常用的状态判断方法
2015/01/29 Javascript
基于jQuery实现Div窗口震动特效代码-代码简单
2015/08/28 Javascript
JavaScript为事件句柄绑定监听函数实例详解
2015/12/15 Javascript
浅谈JavaScript中变量和函数声明的提升
2016/08/09 Javascript
jquery动态赋值id与动态取id方法示例
2017/08/21 jQuery
element-ui table span-method(行合并)的实现代码
2018/12/20 Javascript
layer ui 导入文件之前传入数据的实例
2019/09/23 Javascript
Threejs实现滴滴官网首页地球动画功能
2020/07/13 Javascript
解决vue自定义指令导致的内存泄漏问题
2020/08/04 Javascript
Python Socket编程详细介绍
2017/03/23 Python
Python实现将HTML转换成doc格式文件的方法示例
2017/11/20 Python
Python进阶之递归函数的用法及其示例
2018/01/31 Python
python实现写数字文件名的递增保存文件方法
2018/10/25 Python
Django使用中间键实现csrf认证详解
2019/07/22 Python
将数据集制作成VOC数据集格式的实例
2020/02/17 Python
python TCP包注入方式
2020/05/05 Python
详解如何在pyqt中通过OpenCV实现对窗口的透视变换
2020/09/20 Python
如何用python批量调整视频声音
2020/12/22 Python
jupyter notebook指定启动目录的方法
2021/03/02 Python
美国体育用品在线:Modell’s Sporting Goods
2018/06/07 全球购物
马德里竞技官方网上商店:Atletico Madrid Shop
2019/03/31 全球购物
安全的后院和健身蹦床:JumpSport
2019/07/15 全球购物
数据管理员的自我评价分享
2013/11/15 职场文书
财务部副经理岗位职责
2014/03/14 职场文书
医学生自荐信范文
2015/03/05 职场文书
台风停课通知
2015/04/24 职场文书
小学运动会通讯稿
2015/07/18 职场文书
从结婚开始的恋爱故事。小说《我的美好婚事》TV动画化决定
2022/04/07 日漫