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 48891/week @ 2024-05-02 43422/week @ 2024-05-09 53636/week @ 2024-05-16 51494/week @ 2024-05-23 59493/week @ 2024-05-30 46854/week @ 2024-06-06 48530/week @ 2024-06-13 53669/week @ 2024-06-20 54268/week @ 2024-06-27 45776/week @ 2024-07-04 54358/week @ 2024-07-11 54555/week @ 2024-07-18 69756/week @ 2024-07-25 57247/week @ 2024-08-01 66853/week @ 2024-08-08 61370/week @ 2024-08-15

每月下载量 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' } });

无运行时依赖