我在哪里可以找到一个可以使用的?或者就此而言,如果你知道任何一个“标准”数据结构的好集合?
答案 0 :(得分:11)
我在javascript中写了一个红黑树,可在此处获取:https://github.com/vadimg/js_bintrees或在{n}中为bintrees
。与其他实现不同,它具有单元测试。
答案 1 :(得分:2)
答案 2 :(得分:1)
快速检查“Interwebs”是否出现了Kevin Lindsey的即用型实现(向下滚动到红黑树):
不幸的是,我不知道有一个现成的复杂数据结构存储库的网站。
我猜他们有点罕见,因为人们很少使用JavaScript来进行那种需要这些复杂结构的繁重工作......但我可能错了。
答案 3 :(得分:0)
只是添加我自己的实现以供参考。我创建了一个名为 scl
的包,其中包含许多不同的数据结构。它完全兼容 TypeScript,不同集合的 API 基本相同。虽然不完美,但有一些自动化单元测试可以确保一切正常。
import { RBTreeIndex } from "scl"
interface Person {
name: string;
email: string;
age: number;
}
const people = new RBTreeIndex<Person, number>([
{
name: 'Bob',
email: 'thebobman@gmail.com',
age: 45,
},
{
name: 'Fred',
email: 'fred@outlook.com',
age: 33,
},
{
name: 'Lisa',
email: 'lisa.turner@gmail.com',
age: 37,
}
]);
// Lisa is the oldest person who is at the very most 40 years old.
const lisa = people.getGreatestLowerBound(40);
// Bob is the youngest person older than Lisa
const bob = lisa.next();
// No one is older than Bob
assert(bob.next() === null);
您可以find the repository here和红/黑树实现的源代码here。该软件包也在 here 上的 npm 上。