xtree

Crates.ioxtree
lib.rsxtree
version0.1.8
sourcesrc
created_at2021-01-03 17:22:47.191743
updated_at2021-01-04 16:09:44.267482
descriptionA simple general purpose tree data structure.
homepagehttps://github.com/xstater/xtree
repositoryhttps://github.com/xstater/xtree
max_upload_size
id331110
size22,716
xstater (xstater)

documentation

https://docs.rs/xtree/

README

xtree

A simple rust general purpose tree data structure.

Homepage

crates.io

Documentions

docs.rs

Sources

github

Construct a tree

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

It will construct a tree like below

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

Depth-First iterate a tree

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

It will print 1 2 3 4 5 in console.

Breadth-First iterate a tree and Change the value

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

It will print 2 3 6 4 5 in console.

Freely visit node with Cursor

let mut cursor = tree.cursor();

create a read-only cursor to root node.

cursor.move_child(0);

move this cursor to the first child node.

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

get the value of which it pointing now.
it will print 2 in console.

Advanced usage

More exmples

Commit count: 24

cargo fmt