// pub trait Node {
//
// }
//
// pub trait Tree<T> {
// fn insert(node: T);
// fn get(n: usize) -> Option<&T>;
// }
//
// struct BasicTree<T> {
// nodes: Vec<T>,
// parent: Vec<usize>,
// }
//
// impl<T> FixedTree<T> {
// fn new(size: usize) -> Self {
// Self {
// nodes: Vec::<T>::with_capacity(size),
// parent: Vec::<usize>::with_capacity(size),
// }
// }
// }