2011-03-09 54 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有一些真棒信息,包括基準。