1use common_tree::Node;
2
3struct NodeData {
4 id: usize,
5 name: String,
6}
7
8impl NodeData {
9 pub fn new(id: usize, name: String) -> Self {
10 Self {
11 id,
12 name,
13 }
14 }
15
16 pub fn print(&self) {
17 println!("id: {}, name: {}", self.id, self.name);
18 }
19}
20type HellNode = Node<NodeData>;
21
22fn main() {
23
24 let mut root = HellNode::new(NodeData::new(0, format!("root")));
25
26 root.data().print();
27
28 let mut level1_0 = HellNode::new(NodeData::new(1, format!("level1_0")));
29 let mut level1_1 = HellNode::new(NodeData::new(2, format!("level1_1")));
30
31 let level2_0_0 = HellNode::new(NodeData::new(3, format!("level2_0_0")));
32 let level2_0_1 = HellNode::new(NodeData::new(4, format!("level2_0_1")));
33
34 level1_0.add(level2_0_0);
35 level1_0.add(level2_0_1);
36
37 let level2_1_0 = HellNode::new(NodeData::new(3, format!("level2_1_0")));
38
39
40 level1_1.add(level2_1_0);
41
42 root.add(level1_0);
43 root.add(level1_1);
44
45 root.deepth_first_search(|nd| nd.print());
46
47 root.breadth_first_search(|nd| nd.print());
48}