Коллекции структур данных PHP (Java-подобных)



Я задаюсь вопросом о достоинствах создания небольшой библиотеки, вероятно, для личного использования, которая определяет несколько структур данных, таких как связанные списки, деревья (Binary, AVL и т. д...), Хэш-таблицы поиска и тому подобное.



Некоторые из них будут построены поверх собственного массива PHP, поскольку он действует как многие из этих типов, а некоторые потенциально не будут.



Мой вопрос в том, действительно ли имеет смысл строить какие - либо из этих классов-особенно те, которые не могут строиться на родном языке. массив? Я говорю здесь о вычислительной практичности, и не особенно хочу вдаваться в аргумент динамического и типизированного языка (мне все еще интересно услышать что-нибудь интересное и актуальное на эту тему в стороне).



Безумно ли строить эти (возможно, более эффективные, логически) структуры данных с использованием классов, когда у нас есть C-реализация базового массива?



Спасибо..

720   4  

4 ответов:

Уже есть http://php.net/manual/en/book.spl.php которые могут охватывать то, что вы хотите, но если создание этих будет интересно для вас и улучшить ваши навыки PHP/общего кодирования, то я думаю, что это было бы очень хорошей идеей.

Также может быть хорошей библиотекой, чтобы выпустить ее для более широкой аудитории и что-то добавить в свое резюме.

Взгляните на SPL

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

И прочитайте новые функции Spl Мэтью Терланда в PHP 5.3 для обсуждения этих структур данных.

Это поздний ответ, но это поможет кому-то искать структуры данных PHP. PHP 7 вводит расширение под названием ds, предоставляющее специализированные структуры данных в качестве альтернативы массиву.

The ds,

  • использует пространство имен Ds\.
  • имеет 3 интерфейса, а именно:,Collection, Sequence и Hashable.
  • имеет 8 классов, а именно:, Vector, Deque,Queue, PriorityQueue, Map, Set, Stack, и Pair.

Для получения дополнительной информации проверьте руководство а такжеэтот пост в блоге содержит некоторую потрясающую информацию, включая бенчмарки.

Если вы ищете производительность, вы можете создать модуль php (например, SPL), который предоставляет доступ к этим структурам (поскольку они уже реализованы в C).

Comments

    Ничего не найдено.