#tree #adt #cursor #tree-structure

xtree

一个简单的通用目的树数据结构

9个版本

0.1.8 2021年1月4日
0.1.7 2021年1月4日

#1551 in 数据结构

每月21次下载

MIT许可协议

20KB
398 代码行

xtree

一个简单的Rust通用目的树数据结构。

主页

crates.io

文档

docs.rs

源代码

github

构建一棵树

extern crate xtree;
use xtree::*;
let tree =
    tr!(1)
        / (tr!(2)
            / tr!(3)
            / tr!(4))
        / tr!(5);

它会构建如下所示的树

//      1
//     / \
//   2    5
//  / \
// 3   4

深度优先遍历树

for value in tree.df_iter(){
    print!("{} ",value);
}

它将在控制台打印 1 2 3 4 5

广度优先遍历树并更改值

for value in tree.bf_iter_mut(){
    *value += 1;
    print!("{} ",value);
}

它将在控制台打印 2 3 6 4 5

使用Cursor自由访问节点

let mut cursor = tree.cursor();

创建一个只读cursor指向根节点。

cursor.move_child(0);

将此cursor移动到第一个子节点。

println!("{}",cursor.current());

获取它现在所指向的值。
它将在控制台打印 2

高级用法

更多示例

无运行时依赖