common-tree 0.2.0

common tree lib
Documentation
use common_tree::Node;

struct NodeData {
    id: usize,
    name: String,
}

impl NodeData {
    pub fn new(id: usize, name: String) -> Self {
        Self {
            id,
            name,
        }
    }

    pub fn print(&self) {
        println!("id: {}, name: {}", self.id, self.name);
    }
}
type HellNode = Node<NodeData>;

fn main() {

    let mut root = HellNode::new(NodeData::new(0, format!("root")));

    root.data().print();

    let mut level1_0 = HellNode::new(NodeData::new(1, format!("level1_0")));
    let mut level1_1 = HellNode::new(NodeData::new(2, format!("level1_1")));

    let level2_0_0 = HellNode::new(NodeData::new(3, format!("level2_0_0")));
    let level2_0_1 = HellNode::new(NodeData::new(4, format!("level2_0_1")));

    level1_0.add(level2_0_0);
    level1_0.add(level2_0_1);

    let level2_1_0 = HellNode::new(NodeData::new(3, format!("level2_1_0")));

    
    level1_1.add(level2_1_0);

    root.add(level1_0);
    root.add(level1_1);

    root.deepth_first_search(|nd| nd.print());

    root.breadth_first_search(|nd| nd.print());
}