@foxglove/avl (英语)
Adelson-Velsky-Landis( AVL) 类型脚本中的自平衡二进制树
导言
AVL 树 是自平二进制树,通常用于执行被排序的组合。 除了常见的插入,删除和检索操作外,此执行还支持范围查询,大于并少于搜索.
使用量
import { AVLTree } from "@foxglove/avl";
const tree = new AVLTree<number, string>();
tree.set(0, "zero");
tree.set(1, "1");
tree.set(1, "one");
tree.set(3, "three");
tree.set(2, "two");
tree.delete(0);
console.log(tree.has(0)); // false
console.log(tree.get(1)); // "one"
console.log(tree.size); // 3
console.log(tree.minEntry()); // [1, "one"]
console.log(tree.maxEntry()); // [3, "three"]
console.log(tree.findLessThan(2)); // [1, "one"]
console.log(tree.findGreaterThanOrEqual(2)); // [2, "two"]
tree.forEach((value, key) => console.log(value)); // "one" "two" "three"
tree.range(2, 3, (value, key) => console.log(value)); // "two" "three"
console.log(tree.pop()); // [3, "three"]
console.log(tree.shift()); // [1, "one"]
tree.clear();
// Use a custom comparator for non-Number keys
const bigintTree = new AVLTree<bigint, string>((a, b) => Number(a - b));
bigintTree.set(1n, "one");
替代品
轴 - 重复密钥的可选支持, 但返回值可以在删除( ) 调用后突变, 缺失范围查询优化, 没有查找 [Less/ Greater] Than [OrEqual] 查询, 没有延时器, 命名常规不遵循 ES6 容器模式 .
许可证
@foxglove/avl 获得许可 MIT 许可证。 。 。 .
释放
- 运行
yarn version --[major|minor|patch]切换到凸起版本 - 运行
git push && git push --tags以驱动新标签 - GitHub 动作会照顾剩下的
保持联系
加入我们 黑频道 问问题 分享反馈 随时了解我们团队的工作.