我想请求推荐一些 JavaScript 库,这些库提供了一些基本数据结构的实现,例如优先级队列、具有任意键的映射、尝试、图形等以及对其进行操作的一些算法。
我最感兴趣的是:
我想指出的是,我知道可以使用 JavaScript 实现以下数据结构:
目前我最感兴趣的是优先级队列(不要与常规队列混淆),以及对输入图的格式不是很有干扰的图实现。例如,他们可以使用回调来遍历图的结构,而不是访问一些具有固定名称的具体属性。
截至 2024 年 8 月,Closure 库已被废弃,因为它“不再满足现代 Javascript 开发的需求,请参阅弃用通知和建议的替代方案,但与此问题相关:
- 对于库的许多部分(
、goog.array
、goog.dom
、goog.events
等),JavaScript 的内置解决方案应该足够了。goog.json
- 对于许多特殊用途的包(数学、数据结构、其他算法),一个小型的集中库通常比 Closure 的整体方法更好。
我建议使用闭包库(尤其是闭包编译器)。
这里有一个带有数据结构的库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
例如,您可以使用单元测试:goog.structs.PriorityQueueTest。
如果您需要处理数组,还有一个数组库:goog.array。
如评论中所述,源已移至 github.com/google/closure,文档的新位置为:google.github.io/closure-library.
你可以尝试Buckets是一个非常完整的JavaScript数据结构库,包括:
可能您想要的大部分内容都以一种或另一种方式内置于 Javascript,或者易于与内置功能组合在一起(原生 Javascript 数据结构非常灵活)。您可能喜欢JSClass。
至于该语言的功能特性,underscore.js就是它所在的位置..
我可以帮助您使用任意键的映射:我的 jshashtable 可以做到这一点,并且还有一个基于它的哈希集实现。
特别是对于类似图形的结构,我发现 graphlib 非常方便:
https://github.com/cpettitt/graphlib/wiki/API-Reference
它非常简单,比我尝试过的其他实现更快,具有所有基本功能、流行的图形算法和 JSON 数据导出。
添加自定义 javascript 库的链接,该库提供优先级队列、尝试、基本图形处理和其他实现,以供该线程的访问者将来参考。查看 dsjslib
您的 javascript 是在应用程序中还是在网页中?如果是用于应用程序,为什么不将数据结构外包给Redis?有一个 nodejs 客户端
Redis 是一个开源的高级键值存储。它通常被称为数据结构服务器,因为键可以包含字符串、散列、列表、集合和排序集合。