pilas listas estructura ejemplos datos con colas algorithm data-structures javascript

algorithm - estructura - listas en javascript



biblioteca de estructuras de datos de JavaScript (9)

Me gustaría pedir recomendaciones de biblioteca / bibliotecas de JavaScript que proporcionen una implementación de algunas estructuras de datos básicas, como una cola de prioridad, un mapa con claves arbitrarias, intentos, gráficos, etc. junto con algunos algoritmos que operan en ellas.

Estoy más interesado en:

  • El conjunto de características cubiertas,
  • Flexibilidad de la solución: esto se aplica principalmente a los gráficos. Por ejemplo, tengo que usar una implementación de gráfico suministrada,
  • Uso de las características funcionales del lenguaje: una vez más, a veces brinda una mayor flexibilidad
  • Rendimiento de la implementació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 implementación de mapa),
  • Una cola, aunque como se señaló a continuación, es ineficiente en algunos navegadores,

Por el momento, me interesan principalmente las colas de prioridad (no confundir con las colas normales), las 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.


¿Tu javascript está en una aplicación o en una página web? Si se trata de una aplicación, ¿por qué no subcontratar las estructuras de datos a Redis ? Hay un cliente para nodejs

Redis es una tienda de valor-clave avanzada y de código abierto. A menudo se lo denomina servidor de estructura de datos ya que las claves pueden contener cadenas, hashes, listas, conjuntos y conjuntos ordenados.


Agregar un enlace a una biblioteca de JavaScript personalizada que proporcione Colas de prioridad, Procesos, Procesamiento gráfico básico y otra implementación, para referencia futura de los visitantes de este hilo. Echa un vistazo a dsjslib


Especialmente para estructuras gráficas, me parece muy conveniente graphlib:

https://github.com/cpettitt/graphlib/wiki/API-Reference

Es muy directo, más rápido que otras implementaciones que probé, tiene todas las funciones básicas, algoritmos de gráficos populares y una exportación de datos JSON.


Probablemente, la mayoría de lo que desea está incorporado a Javascript de una manera u otra, o es fácil de armar con la funcionalidad incorporada (las estructuras de datos nativas de Javascript son increíblemente flexibles). Puede que le guste JSClass .

En cuanto a las características funcionales del lenguaje, underscore.js es donde está ..


Puedes probar Buckets es una biblioteca de estructura de datos de JavaScript muy completa que incluye:

  • Lista enlazada
  • Diccionario
  • Diccionario multi
  • Árbol de búsqueda binaria
  • Apilar
  • Cola
  • Conjunto
  • Bolso
  • Montón binario
  • Cola prioritaria

Puedo ayudarlo con los mapas con claves arbitrarias: mi jshashtable hace esto, y también hay una implementación del conjunto de hash creado en la parte superior.


Recomiendo utilizar Closure Library (especialmente con el compilador de cierre).

Aquí tienes una biblioteca con estructuras de datos goog.structs . La biblioteca contiene:

goog.structs.AvlTree goog.structs.CircularBuffer goog.structs.Heap goog.structs.InversionMap goog.structs.LinkedMap goog.structs.Map goog.structs.PriorityQueue goog.structs.Set

Como ejemplo, puede usar la prueba unitaria: goog.structs.PriorityQueueTest .

Si necesita trabajar en matrices, también hay una matriz lib: goog.array .

Como se señala en los comentarios, la fuente se ha movido a github.com/google/closure y la nueva ubicación de la documentación es: google.github.io/closure-library .



data.js

No creo que sea tan rico en funciones como quieras, pero tiene gráficos, hashes y colecciones.

Tomaría esto un comienzo ligero que puedes extender.

En cuanto a lo que ofrece, está bien escrito, es eficiente y está documentado.