Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- fn traverse_tree(tree: &Tree, vec: BitVec) -> HashMap<u8, BitVec> {
- match tree.data {
- Some(byte) => {
- let mut map = HashMap::with_capacity(1);
- map.insert(byte, vec);
- map
- }
- None => {
- let mut left_vec = vec.clone();
- left_vec.push(false);
- let mut right_vec = vec.clone();
- right_vec.push(true);
- let left_map = traverse_tree(tree.left.unwrap().as_ref(), left_vec);
- let right_map = traverse_tree(tree.right.unwrap().as_ref(), right_vec);
- let mut map = HashMap::with_capacity(left_map.len() + right_map.len());
- map.extend(left_map);
- map.extend(right_map);
- map
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement