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。