basic/
basic.rs

1extern crate id_tree;
2
3use id_tree::*;
4
5fn main() {
6    use id_tree::InsertBehavior::*;
7
8    //      0
9    //     / \
10    //    1   2
11    //   / \
12    //  3   4
13    let mut tree: Tree<i32> = TreeBuilder::new().with_node_capacity(5).build();
14
15    let root_id: NodeId = tree.insert(Node::new(0), AsRoot).unwrap();
16    let child_id: NodeId = tree.insert(Node::new(1), UnderNode(&root_id)).unwrap();
17    tree.insert(Node::new(2), UnderNode(&root_id)).unwrap();
18    tree.insert(Node::new(3), UnderNode(&child_id)).unwrap();
19    tree.insert(Node::new(4), UnderNode(&child_id)).unwrap();
20
21    println!("Debug: {:?}", tree);
22
23    println!("Post-order:");
24
25    for node in tree.traverse_post_order(&root_id).unwrap() {
26        print!("{}, ", node.data());
27    }
28
29    println!();
30    println!("Pre-order:");
31
32    for node in tree.traverse_pre_order(&root_id).unwrap() {
33        print!("{}, ", node.data());
34    }
35
36    println!();
37}