pub fn new(init_val: &[T::M]) -> Self {
        let size = init_val.len();
        let mut val = vec![T::identity(); size];
        val.extend_from_slice(init_val);
        let app = vec![None; size];

        let mut arq = Self { val, app };
        for p in (0..size).rev() {
            arq.pull(p);
        }
        arq
    }
/// Initializes a static balanced tree on top of the given sequence.
Initializes a static balanced tree on top of the given sequence.
Initializes a static balanced tree on top of the given sequence .
pub fn new(init_val: &[T::M]) -> Self {
        let size = init_val.len();
        let mut val = vec![T::identity(); size];
        val.extend_from_slice(init_val);
        let app = vec![None; size];
        let mut arq = Self { val, app };
        for p in (0..size).rev() {
            arq.pull(p);
        }
        arq
    }
pub fn new ( init_val : & [ T :: M ] ) -> Self { let size = init_val . len ( ) ; let mut val = vec ! [ T identity ( ) size ] ; val . extend_from_slice ( init_val ) ; let app = vec ! [ None size ] ; let mut arq = Self { val , app } ; for p in ( 0 .. size ) . rev ( ) { arq . pull ( p ) ; } arq }
Initializes a static balanced tree on top of the given sequence.
Initializes a static balanced tree on top of the given sequence .
init_val
&[T::M]