extern crate compt;
use compt::*;
fn main() {
let mut k =
compt::dfs_order::CompleteTreeContainer::from_inorder(vec![3, 1, 4, 0, 5, 2, 6]).unwrap();
let tree = k.as_tree_mut();
let k = tree.vistr_mut();
let (a, rest) = k.next();
let [left, right] = rest.unwrap();
let mut res: Vec<&mut usize> = Vec::new();
res.push(a);
left.dfs_inorder(|a| {
res.push(a);
});
for a in right.dfs_preorder_iter() {
res.push(a);
}
let res: Vec<usize> = res.drain(..).map(|a| *a).collect();
assert_eq!(&res, &[0, 3, 1, 4, 2, 5, 6]);
}