библиотека структур данных javascript
Я хотел бы попросить рекомендации библиотеки JavaScript/библиотек, которые предоставляют реализацию некоторых базовых структур данных, таких как приоритетная очередь, карта с произвольными ключами, попытки, графики и т. д. наряду с некоторыми алгоритмами, которые работают на них.
меня больше всего интересует:
- набор функций, охватываемых,
- гибкость решения - это в основном для графики. Например, должен ли я использовать предоставленный график реализация,
- использование функциональных возможностей языка-опять же это иногда дает большую гибкость,
- результативность реализации
EDIT
хорошо, я хотел бы отметить, что я знаю, что с помощью js можно реализовать следующие структуры данных:
- карта, если Ключевые значения являются строками или числами,
- набор, (используя карту реализация),
- очередь, хотя, как было указано ниже, это неэффективно в некоторых браузерах,
на данный момент меня больше всего интересуют очереди приоритетов (не путать с обычными очередями), реализации графа, которые не очень навязчивы в отношении формата входного графа. Например, они могут использовать обратные вызовы для обхода структуры графа, а не для доступа к некоторым конкретным свойствам с фиксированными именами.
9 ответов:
Я рекомендую использовать библиотеку закрытия (особенно с компилятора).
здесь у вас есть библиотека со структурами данных хорошо.структуры. Библиотека содержит:
goog.structs.AvlTree goog.structs.CircularBuffer goog.structs.Heap goog.structs.InversionMap goog.structs.LinkedMap goog.structs.Map goog.structs.PriorityQueue goog.structs.Setв качестве примера вы можете использовать модульный тест:хорошо.структуры.PriorityQueueTest.
Если вам нужно работать с массивами, есть также массив lib:хорошо.массив.
Как отмечено в комментариях, Источник переместился в github.com/google/closure и новое место документации составляет: компания Google.на GitHub.Ио/закрытия библиотеки.
вы можете попробовать ведра это очень полная библиотека структуры данных JavaScript, которая включает в себя:
- Список Ссылок
- словарь
- Мульти Словарь
- Бинарное Дерево Поиска
- стек
- очереди
- Set
- мешок
- Двоичные Кучи
- Приоритет В Очереди
вероятно, большая часть того, что вы хотите, так или иначе встроена в Javascript или легко сочетается со встроенной функциональностью (собственные структуры данных Javascript невероятно гибки). Вам может понравиться JSClass.
Что касается функциональных особенностей языка, подчеркивания.js там, где он находится..
Я могу помочь вам с картами с произвольными ключами: my jshashtable делает это, и есть также реализация набора хэшей, построенная поверх него.
Если вы найдете больше из них, не могли бы вы добавить их в jswiki. Спасибо. :)
ваш javascript находится в приложении или на веб-странице? Если это для приложения, почему бы не передать структуры данных на аутсорсинг Redis? Там есть клиент для nodejs
Redis-это хранилище с открытым исходным кодом и расширенным значением ключа. Он часто упоминается как сервер структуры данных, так как ключи могут содержать строки, хэши, списки, наборы и сортированные наборы.
добавление ссылки на пользовательскую библиотеку javascript, которая предоставляет приоритетные очереди, попытки, базовую обработку графов и другую реализацию для дальнейшего использования посетителями этого потока . Проверьте dsjslib
специально для графа-подобные структуры, я считаю, graphlib очень удобно:
https://github.com/cpettitt/graphlib/wiki/API-Reference
Это очень прямолинейно, быстрее, чем другие реализации, которые я пробовал, имеет все основные функции, популярные графовые алгоритмы и экспорт данных JSON.
Я не верю, что это так многофункционально, как вы хотите, но у него есть графики, хэши и коллекции.
Я бы взял это легкий старт,который вы можете продлить.
Что касается того, что он предлагает, он хорошо написан, эффективен и документирован.
Comments