当前位置: 首页 > 后端技术 > PHP

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

时间:2023-03-30 06:00:34 PHP

大家好,我是PHP程序员面试笔试系列的作者刘毅。本周(2019.3.18至3.22)更新135篇文章如下:周一:PHP面试常考数据结构-链表概念周三:PHP面试常考数据结构-栈与队列周五:PHP资料面试中经常考的结构——我编了一篇文章《PHP是如何实现链表的?1.链表链表(Linkedlist)是一种常见的基础数据结构。它是一个线性表,但它并不是按照线性顺序存储数据,而是在每个节点中存储一个指向下一个节点的指针(Pointer)。使用链表结构可以克服数组链表需要事先知道数据大小的缺点,链表结构可以充分利用计算机内存空间,实现灵活的内存动态管理。但是链表失去了随机读取数组的优势,同时链表由于增加了节点的指针字段,空间开销也比较大。存在三种不同类型的链表:单链表、双向链表和循环链表。2.单向链表单向链表包含两个字段,一个信息字段和一个指针字段。此链接指向列表中的下一个节点,最后一个节点指向空值。如图:3、双向链表的每个节点都有两个连接:一个指向前一个节点(当这个“连接”是第一个“连接”时,它指向一个空值或一个空列表);而另一个指向下一个Node,(当这个“连接”是最后一个“连接”时,它指向一个空值或一个空列表)如图:4.循环链表在循环链表中,第一个节点和最后一个节点连接在一起。这种方法可以在单向和双向链表中实现。要转换循环链表,您可以从任何节点开始并沿任一方向跟随列表,直到返回到起始节点。再看另一种方法,循环链表可以看做是“无头无尾”。这种列表非常适合保存数据存储缓存,假设您在列表中有一个对象并希望以非特定顺序迭代所有其他对象。指向整个列表的指针可以称为访问指针。自己写的《PHP程序员面试笔试宝典》和《PHP程序员面试笔试真题解析》的书在各大电商平台都有销售。这两本书可以帮助你更快更好地拿到offer。更多PHP相关面试知识和考题,请关注公众号获取:六一编程库,对本文有任何问题或建议可以留言。我会不断改进,追求极致,谢谢大家的支持。