2011-03-09 51 views
4

我想知道如何创建一个小型图书馆的优劣,可能是个人使用其指定的几个数据结构,例如链表,树(二进制,AVL等.. ),散列查找表等。PHP数据结构(类似Java的)集合

其中的一些将被建在原生PHP数组的顶部,因为它充当许多类型,有些可能不会。

我的问题是真的,这将是有意义的建立这些类的 - 尤其是那些可能不是建立在本地阵列?我在这里谈论的是计算实用性,并不特别想进入动态与类型化语言的争论(我仍然有兴趣听到有关该主题的任何有趣和相关的内容)。

是不是疯了建立这些(可能是更有效的,逻辑上)使用类数据结构的时候,我们有一个C实现的基本排列的?

谢谢..

回答

1

已经有http://php.net/manual/en/book.spl.php可能涵盖你想要的东西,但如果构建这些对你来说很有意思,并且提高你的PHP /通用编码技能,那么我认为这将是一个非常好的主意。

也可能是一个很好的图书馆,可以向更广泛的受众群体发布并提供简历。

+0

是的,这部分是一种学习体验,但正如我提到的KingCrunch我不确定SPL是否足够完整。如果对它有兴趣,我会高兴地发布它.. – Adam 2011-03-09 13:21:16

2

看一看SPL

http://php.net/manual/en/book.spl.php

读马修Turland的New Spl Features in PHP 5.3对这些数据结构的讨论。

+0

我知道SPL,虽然它拥有比我记得更多的数据结构。我会尽可能使用那些接口,并且实现这些接口,但似乎并没有提供完整的库(对于大多数目的,我承认这是足够的)。 – Adam 2011-03-09 13:18:55

+0

它试图获得一个完整的图书馆几年,所以没有人会知道,什么时候(或者甚至)会在某一天发生;) – KingCrunch 2011-03-09 13:20:24

0

如果您正在寻找到性能,您可以创建一个PHP模块(如SPL),让访问这些结构(因为它们是用C语言已经实施)。

+0

是的,我想知道这一点,唯一的问题是它不会像设置共享主机或其他类似环境一样简单。我可能会研究它 – Adam 2011-03-09 17:02:12

1

这是一个很晚的答案,但这将有助于某人寻找PHP数据结构。 PHP 7引入了名为ds的扩展,提供专用数据结构作为阵列的替代方案。

ds

  • 使用Ds\命名空间。
  • 有3个接口,即CollectionSequenceHashable
  • 有8个类即,VectorDequeQueuePriorityQueueMapSetStack,并Pair

欲了解更多信息,结账ManualThis blog post有一些真棒信息,包括基准。