11个版本 (6个重大变更)

使用旧版Rust 2015

新版本 0.7.0 2024年8月22日
0.6.2 2019年10月2日
0.6.1 2019年1月18日
0.6.0 2018年12月3日
0.1.0 2016年1月10日

数据结构 中排名 77

Download history • Rust 包仓库 48891/week @ 2024-05-02 • Rust 包仓库 43422/week @ 2024-05-09 • Rust 包仓库 53636/week @ 2024-05-16 • Rust 包仓库 51494/week @ 2024-05-23 • Rust 包仓库 59493/week @ 2024-05-30 • Rust 包仓库 46854/week @ 2024-06-06 • Rust 包仓库 48530/week @ 2024-06-13 • Rust 包仓库 53669/week @ 2024-06-20 • Rust 包仓库 54268/week @ 2024-06-27 • Rust 包仓库 45776/week @ 2024-07-04 • Rust 包仓库 54358/week @ 2024-07-11 • Rust 包仓库 54555/week @ 2024-07-18 • Rust 包仓库 69756/week @ 2024-07-25 • Rust 包仓库 57247/week @ 2024-08-01 • Rust 包仓库 66853/week @ 2024-08-08 • Rust 包仓库 61370/week @ 2024-08-15 • Rust 包仓库

每月下载量 268,708
559 个crate(46个直接使用)中使用

遵循 ISC 许可协议

39KB
877

Ego Tree

crates.io downloads test

基于Vec的ID树。

ego-tree 可在 Crates.ioGitHub 上找到。


lib.rs:

基于Vec的ID树。

行为

  • 树至少有一个根节点;
  • 节点可以有零个或多个有序子节点;
  • 节点最多只有一个父节点;
  • 节点可以被分离(成为孤儿节点),但不能被删除;
  • 可以以常数时间访问节点的父节点、下一个兄弟节点、前一个兄弟节点、第一个子节点和最后一个子节点;
  • 所有方法都在常数时间内执行;
  • 所有迭代器都在线性时间内执行。

示例

let mut tree = ego_tree::Tree::new('a');
let mut root = tree.root_mut();
root.append('b');
let mut c = root.append('c');
c.append('d');
c.append('e');
#[macro_use] extern crate ego_tree;
let tree = tree!('a' => { 'b', 'c' => { 'd', 'e' } });

无运行时依赖