Me gustaría pedir recomendaciones de biblioteca de JavaScript/bibliotecas que proporcionan una implementación de algunas estructuras de datos básicas como una cola de prioridad, mapa con claves arbitrarias, intentos, gráficos, etc. junto con algunos algoritmos que operan en ellos.biblioteca de estructuras de datos de JavaScript
Lo que más me interesa:
- El conjunto de funciones que se tratan,
- La flexibilidad de la solución - esto se aplica sobre todo a los gráficos. Por ejemplo tengo que usar una aplicación gráfica suministrada,
- Uso de las características funcionales de la lengua - de nuevo a veces da mayor flexibilidad,
- rendimiento de la aplicación
EDITAR
Ok, me gustaría señalar que soy consciente de que es posible implementar usando js las siguientes estructuras de datos:
- Un mapa, si los valores clave son cadenas o números,
- Un conjunto, (usando una aplicación MAP),
- Una cola, aunque, como se señala más adelante, es ineficiente en algunos navegadores,
Por el momento estoy interesado principalmente en colas de prioridad (no confundir con colas normales), implementaciones de gráficos que no son muy intrusivas en cuanto al formato del gráfico de entrada. Por ejemplo, podrían usar devoluciones de llamada para atravesar la estructura del gráfico en lugar de acceder a algunas propiedades concretas con nombres fijos.
No es realmente una respuesta, así que comentaré: algunos de ellos son parte del lenguaje. Todos los objetos de JavaScript son mapas con claves arbitrarias; y como los valores de propiedad pueden ser objetos, forman gráficos. JavaScript "arrays" (que [no son realmente arrays]) (http://blog.niftysnippets.org/2011/01/myth-of-arrays.html)) proporcionan funciones de pila ('push',' pop'). –
@Crowder Sí, estoy de acuerdo. Pero las claves realmente tienen que ser numéricas o de cadena, por lo que no lo llamaría arbitrario. Para push & pop, seguro que puedo usarlo para implementar una cola pero no mucha ayuda con una cola de prioridad. Estoy pidiendo las estructuras de datos que js carece (le faltan muchas). – julkiewicz
Es por eso que fue un comentario, no una respuesta. :-) (Y sí, los nombres de propiedad deben ser cadenas. De hecho, incluso los índices de matriz son nombres de propiedad, y por lo tanto cadenas, aunque casi siempre usamos números - * en teoría * se convierten en cadenas y luego la propiedad es miró hacia arriba, aunque uno espera que las implementaciones optimicen eso.) –