@foxglove/avl

中文文档
1.0.0发布于 2021/09/14MITTypeScriptCommonJS零依赖近 30 天下载 11.6万

Adelson-Velsky-Landis( AVL) 类型脚本中的自平衡二进制树

中文使用文档
文档目录6 节
  1. 导言
  2. 使用量
  3. 替代品
  4. 许可证
  5. 释放
  6. 保持联系

@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 许可证。 。 。 .

释放

  1. 运行 yarn version --[major|minor|patch] 切换到凸起版本
  2. 运行 git push && git push --tags 以驱动新标签
  3. GitHub 动作会照顾剩下的

保持联系

加入我们 黑频道 问问题 分享反馈 随时了解我们团队的工作.

版本与发布记录

@foxglove/avl 共发布 1 个版本,首次发布于 2021/09/14;过去 12 个月发布了 0 个版本。

版本发布日期距今
1.0.0latest2021/09/145 年前

关于 @foxglove/avl 的常见问题

@foxglove/avl 是什么?

Adelson-Velsky-Landis( AVL) 类型脚本中的自平衡二进制树

如何安装 @foxglove/avl?

在项目目录运行 npm install @foxglove/avl,或使用 pnpm add / yarn add / bun add。

@foxglove/avl 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@foxglove/avl 支持 ESM 还是 CommonJS?

以 CommonJS 形式发布,可以直接 require();在 ES Module 项目中也可以用 import 引入(Node.js 会把 module.exports 作为默认导出)。

@foxglove/avl 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >= 14。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@foxglove/avl 可以商用吗?

@foxglove/avl 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@foxglove/avl 的下载量有多少?

根据 npm 官方下载统计,@foxglove/avl 在 2026/10/16 – 2026/11/14 这 30 天内被下载 116,337 次,日均约 3,878 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@foxglove/avl 还在维护吗?

最新版本 1.0.0 发布于 2021/09/14(5 年前);至今共发布 1 个版本,其中过去 12 个月发布了 0 个;首次发布于 2021/09/14。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。