PHP面试常考之数据结构——链表的概念

你好,是我琉忆,PHP程序员面试笔试系列图书的做者。程序员

本周(2019.3.18至3.22)的一三五更新的文章以下:面试

周一:PHP面试常考之数据结构——链表的概念
周三:PHP面试常考之数据结构——栈和队列
周五:PHP面试常考之数据结构——
本身整理了一篇“ PHP如何实现链表?”的文章,关注公众号:“ 琉忆编程库”,回复:“ 链表”,我发给你。

1、链表

链表(Linked list)是一种常见的基础数据结构,是一种线性表,可是并不会按线性的顺序存储数据,而是在每个节点里存到下一个节点的指针(Pointer)。
使用链表结构能够克服数组链表须要预先知道数据大小的缺点,链表结构能够充分利用计算机内存空间,实现灵活的内存动态管理。可是链表失去了数组随机读取的优势,同时链表因为增长告终点的指针域,空间开销比较大。编程

链表有很三种不一样的类型:单向链表,双向链表以及循环链表。数组

2、单向链表

单向链表包含两个域,一个信息域和一个指针域。这个连接指向列表中的下一个节点,而最后一个节点则指向一个空值。
如图:
clipboard.png缓存


3、双向链表

每一个节点有两个链接:一个指向前一个节点,(当此“链接”为第一个“链接”时,指向空值或者空列表);而另外一个指向下一个节点,(当此“链接”为最后一个“链接”时,指向空值或者空列表)
如图:
clipboard.png数据结构


4、循环链表

在一个循环链表中,首节点和末节点被链接在一块儿。这种方式在单向和双向链表中皆可实现。要转换一个循环链表,你开始于任意一个节点而后沿着列表的任一方向直到返回开始的节点。再来看另外一种方法,循环链表能够被视为“无头无尾”。这种列表很利于节约数据存储缓存,假定你在一个列表中有一个对象而且但愿全部其余对象迭代在一个非特殊的排列下。指向整个列表的指针能够被称做访问指针。spa

clipboard.png


本身编写的《PHP程序员面试笔试宝典》《PHP程序员面试笔试真题解析》书籍,已在各大电商平台销售,两本能够帮助你更快更好的拿到offer的书。3d

图片描述
更多PHP相关的面试知识、考题能够关注公众号获取:琉忆编程库指针

clipboard.png

对本文有什么问题或建议均可以进行留言,我将不断完善追求极致,感谢大家的支持。对象

相关文章
相关标签/搜索