Ste*_*hen 18 php spl linked-list data-structures
为了扩展我的编程能力,我已经深入研究了标准PHP库.这导致我发现了这门SplDoublyLinkedList课程.从那里我阅读维基百科上的链接列表和双重链接列表的描述.
我理解它们是如何工作的...但是我无法想象为什么我们需要它 - 或者更好的是一个实际的例子,SplDoublyLinkedList因为我们在PHP中有索引和关联数组.
链接列表通常用于PHP的进出?
小智 7
SPL数据结构可减少内存消耗并提高性能.好的解释:
数据结构本质上与语言无关,并且作为一组基于数学的逻辑概念存在.这些容器适当地使用不同的算法以最大化效率.
例如,如果您不需要关联数组的哈希映射功能 - 也就是说,如果您没有为特定目的使用数组键并且只需要枚举数组 - SplFixedArray(以前是SplFastArray,当前未记录)可能是一个合适的替代品.唯一需要注意的是,数组的大小是固定的,这意味着在实例化类时必须指定大小,如果尝试存储的元素数超过该数量,则会发生错误.这就是平均来说它比标准PHP数组表现更好的原因.
http://web.archive.org/web/20130805120049/http://blueparabola.com/blog/spl-deserves-some-reiteration
在构成PHP解释器的C代码中,数组被实现为称为哈希表或哈希映射的数据结构.当数组中包含的值由其索引引用时,PHP使用散列函数将该索引转换为表示数组中相应值的位置的唯一散列.
此哈希映射实现使数组能够存储任意数量的元素,并使用数字键或字符串键同时访问所有这些元素.阵列对于它们提供的功能来说非常快,并且是一种出色的通用数据结构.
在计算机科学中,列表被定义为有序的值集合.链表是一种数据结构,其中列表中的每个元素包括对列表中其中任一侧的一个或两个元素的引用.术语"双链表"用于指后一种情况.在SPL中,它采用SplDoublyLinkedList类的形式.当预先不知道要存储的元素数量时,使用列表是有意义的,并且元素只需要通过顺序位置访问.
http://matthewturland.com/2010/05/20/new-spl-features-in-php-5-3/