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