use radn::{
    flow::binary::{
        balancing::BalancedTrees, bound::BoundTrees, BinaryTreesEmpty, BinaryTreesMutable,
    },
    mrds::trees::heighted::Trees,
};

fn main() {
    let trees = BoundTrees::new(BalancedTrees::new(Trees::new()));
    let mut tree = trees.empty();
    for i in [
        8, 3, 10, 17, 0, 13, 6, 1, 11, 5, 4, 7, 18, 14, 15, 9, 2, 19, 16, 12,
    ] {
        tree = trees.clone().add_tree(tree, i);
        println!("{}", tree.as_ref());
    }
    for i in [
        2, 9, 4, 7, 8, 10, 17, 1, 13, 15, 18, 12, 5, 0, 3, 6, 16, 19, 14, 11,
    ] {
        tree = trees.clone().remove(tree, i);
        println!("{}", tree.as_ref());
    }
}