Trait RecursiveSizeBalancedTree
Source pub trait RecursiveSizeBalancedTree<T: LinkType> {
Show 30 methods
// Required methods
unsafe fn get_mut_left_reference(&mut self, node: T) -> *mut T;
unsafe fn get_mut_right_reference(&mut self, node: T) -> *mut T;
unsafe fn get_left_reference(&self, node: T) -> *const T;
unsafe fn get_right_reference(&self, node: T) -> *const T;
unsafe fn get_left(&self, node: T) -> T;
unsafe fn get_right(&self, node: T) -> T;
unsafe fn get_size(&self, node: T) -> T;
unsafe fn set_left(&mut self, node: T, left: T);
unsafe fn set_right(&mut self, node: T, right: T);
unsafe fn set_size(&mut self, node: T, size: T);
unsafe fn first_is_to_the_left_of_second(&self, first: T, second: T) -> bool;
unsafe fn first_is_to_the_right_of_second(
&self,
first: T,
second: T,
) -> bool;
// Provided methods
unsafe fn get_left_or_default(&self, node: T) -> T { ... }
unsafe fn get_right_or_default(&self, node: T) -> T { ... }
unsafe fn get_size_or_zero(&self, node: T) -> T { ... }
unsafe fn inc_size(&mut self, node: T) { ... }
unsafe fn dec_size(&mut self, node: T) { ... }
unsafe fn get_left_size(&self, node: T) -> T { ... }
unsafe fn get_right_size(&self, node: T) -> T { ... }
unsafe fn fix_size(&mut self, node: T) { ... }
unsafe fn left_rotate(&mut self, root: *mut T) { ... }
unsafe fn left_rotate_core(&mut self, root: T) -> T { ... }
unsafe fn right_rotate(&mut self, root: *mut T) { ... }
unsafe fn right_rotate_core(&mut self, root: T) -> T { ... }
unsafe fn get_rightest(&self, current: T) -> T { ... }
unsafe fn get_leftest(&self, current: T) -> T { ... }
unsafe fn get_next(&self, node: T) -> T { ... }
unsafe fn get_previous(&self, node: T) -> T { ... }
unsafe fn contains(&self, node: T, root: T) -> bool { ... }
unsafe fn clear_node(&mut self, node: T) { ... }
}