[−][src]Crate xtree
XTree
XTree is a general purpose tree data structure.
Homepage
Documentions
Sources
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
Macros
tr | A useful macro is used to build a tree |
Structs
BfDepthIter | The immutable Breadth-First Iterator with Depth information. |
BfDepthIterMut | The mutable Breadth-First Iterator with Depth information. |
BfIter | The immutable Breadth-First Iterator. |
BfIterMut | The mutable Breadth-First Iterator. |
ChildrenIter | The immutable iterator over all the children |
ChildrenIterMut | The mutable iterator over all the children |
Cursor | A immutable Cursor can freely visit node in tree |
CursorMut | A mutable Cursor can freely visit node in tree |
DfDepthIter | The immutable Depth-First Iterator with Depth information. |
DfDepthIterMut | The mutable Breadth-First Iterator with Depth information. |
DfIter | The immutable Depth-First Iterator. |
DfIterMut | The mutable Depth-First Iterator. |
Tree | The type representing a Tree |