PHP数据结构(类似Java的)集合

4
我在思考创建一个小型库的优点,可能是为了个人使用,其中指定了一些数据结构,如链表、树(二叉树、AVL等)、哈希查找表等。
其中一些将建立在原生的PHP数组之上,因为它可以扮演许多这些类型的角色,而有些则可能不会。
我的问题实际上是,是否有意义构建任何这些类 - 特别是那些可能不建立在原生数组之上的类?我在谈论计算实用性,并且不特别想涉及动态语言与静态语言之争(如果有任何有趣和相关的话题,我仍然很感兴趣)。
当我们有基本数组的C实现时,使用类来构建这些(可能更有效率、逻辑上更合理的)数据结构是不是疯狂的?
谢谢。
4个回答

2

我知道SPL,尽管它比我记得的数据结构更多。我会在可能的情况下使用它们,并实现这些接口,但它似乎并没有提供完整的库(对于大多数目的而言,我承认它已经足够)。 - Adam
它已经尝试了几年来获取一个完整的库,所以没有人知道这一天会不会到来 ;) - KingCrunch

1

已经有http://php.net/manual/en/book.spl.php这个库了,它可能已经涵盖了你想要的内容。但是,如果构建这些内容对你来说很有趣,并且可以提高你的PHP/编码技能,那么我认为这是一个非常好的想法。

这也可能是一个向更广泛的受众发布的好库,同时也是你简历上的一笔亮点。


是的,这部分是一个学习经验,但正如我对KingCrunch提到的那样,我不确定SPL是否足够完整。如果有兴趣,我很乐意发布它。 - Adam

1
这是一个晚回答,但对于寻找PHP数据结构的人会有所帮助。PHP 7引入了一个名为ds的扩展,提供了专门的数据结构作为数组的替代品。 ds
- 使用Ds\命名空间。 - 有3个接口,分别是CollectionSequenceHashable。 - 有8个类,分别是VectorDequeQueuePriorityQueueMapSetStackPair
欲知详情,请查看手册,同时这篇博客文章也包含了一些令人惊叹的信息,包括基准测试。

0
如果您正在考虑性能问题,可以创建一个 PHP 模块(例如 SPL),以便访问这些结构(因为它们已经在 C 中实现)。

是的,我对此有些疑问,唯一的问题是它不太容易设置,特别是对于共享主机或其他类似环境。不过我可能会研究一下。 - Adam

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接