Skip to content

Commit 4293734

Browse files
committed
Adding dfs_recursive_inorder_btree to rust
1 parent 093d50a commit 4293734

File tree

1 file changed

+20
-1
lines changed
  • contents/tree_traversal/code/rust

1 file changed

+20
-1
lines changed

contents/tree_traversal/code/rust/tree.rs

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,21 @@ fn dfs_recursive_postorder(n: &Node) {
2222
println!("{}", n.value);
2323
}
2424

25+
fn dfs_recursive_inorder_btree(n: &Node) {
26+
if n.children.len() == 2{
27+
dfs_recursive_inorder_btree(&n.children[1]);
28+
println!("{}", n.value);
29+
dfs_recursive_inorder_btree(&n.children[0]);
30+
} else if n.children.len() == 1 {
31+
dfs_recursive_inorder_btree(&n.children[0]);
32+
println!("{}", n.value);
33+
} else if n.children.len() == 0 {
34+
println!("{}", n.value);
35+
} else {
36+
println!("This is not a binary tree.");
37+
}
38+
}
39+
2540
fn dfs_stack(n: &Node) {
2641
let mut stack = vec![n];
2742

@@ -54,11 +69,15 @@ fn create_tree(num_row: u64, num_child: u64) -> Node {
5469
}
5570

5671
fn main() {
57-
let root = create_tree(3,3);
72+
let root = create_tree(3,2);
5873
println!("Recursive DFS:");
5974
dfs_recursive(&root);
6075
println!("Stack DFS:");
6176
dfs_stack(&root);
6277
println!("Queue BFS:");
6378
bfs_queue(&root);
79+
println!("Recursive PostOrder DFS: ");
80+
dfs_recursive_postorder(&root);
81+
println!("Recursive DFS BTree:");
82+
dfs_recursive_inorder_btree(&root);
6483
}

0 commit comments

Comments
 (0)