JavaScript数据结构库

我想要求JavaScript库/库的推荐,它提供了一些基本数据结构的实现,例如优先级队列,任意键映射,尝试,图等等,以及一些对它们进行操作的algorithm。

我最感兴趣的是:

  • 涵盖的function集,
  • 解决scheme的灵活性 – 这主要适用于graphics。 例如,我必须使用提供的graphics实现,
  • 使用该语言的function特征 – 同样有时会带来更大的灵活性,
  • 执行的性能

编辑

好的,我想指出,我知道可以使用js实现以下数据结构:

  • 一张地图,如果键值是string或数字,
  • 一套(使用地图实施),
  • 尽pipe正如下面指出的那样,队列在某些浏览器上效率不高,

目前我主要对优先级队列感兴趣(不要与常规队列混淆),graphics实现对inputgraphics的格式不是很干扰。 例如,他们可以使用callback来遍历图的结构,而不是访问具有固定名称的一些具体属性。

我build议使用Closure Library(特别是使用闭包编译器)。

在这里你有一个数据结构goog.structs库。 图书馆包含:

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

举个例子,你可以使用unit testing: goog.structs.PriorityQueueTest 。

如果你需要处理数组,还有一个数组lib: goog.array 。

如注释中所述,源代码已移至github.com/google/closure ,文档的新位置为: google.github.io/closure-library 。

您可以尝试Buckets是一个非常完整的JavaScript数据结构库,其中包括:

  • 链接列表
  • 字典
  • 多字典
  • 二进制search树
  • 队列
  • 二进制堆
  • 优先级队列

可能大部分你想要的内容是以某种方式embedded到Javascript中,或者很容易与内置function(本地JavaScript数据结构非常灵活)组合在一起。 你可能会喜欢JSClass 。

至于语言的function特点, underscore.js是在哪里..

我可以帮助你与任意键的地图:我的jshashtable做到这一点,也有一个哈希集实现上的构build。

有效的队列 。

如果你发现更多的这些,你可以把它们添加到jswiki 。 谢谢。 🙂

你的JavaScript是在一个应用程序,还是一个网页? 如果是应用程序,为什么不把数据结构外包给Redis ? 有一个nodejs的客户端

Redis是一个开源的高级键值存储。 它通常被称为数据结构服务器,因为密钥可以包含string,散列,列表,集合和有序集合。

添加一个链接到一个自定义的JavaScript库,它提供了优先级队列,尝试,基本graphics处理和其他实现,供将来参考这个线程的访问者。 退房dsjslib

特别是对于graphics结构,我发现graphlib非常方便:

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

这是非常直接的,比我尝试过的其他实现更快,具有所有的基本function,stream行的graphicsalgorithm和JSON数据导出。

data.js。

我不认为它像function丰富,但它有graphics,哈希和集合。

我会采取这个轻量级的开始,你可以延长。

至于它提供了什么,它写得很好,有效率和logging。