1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
mod node; mod node_ref; use crate::node::RootNode; const B: u16 = 3; #[derive(Debug)] pub struct BTreeSet<K> { root: RootNode<K, ()>, } impl<K> BTreeSet<K> where K: Ord, { pub fn new() -> Self { Self { root: RootNode::new(), } } pub fn insert(&mut self, key: K) -> Option<()> { self.root.insert(key, ()) } pub fn remove(&mut self, key: K) -> Option<()> { self.root.remove(key) } } #[derive(Debug)] pub struct BTreeMap<K, V> { root: RootNode<K, V>, } impl<K, V> BTreeMap<K, V> where K: Ord, { pub fn new() -> Self { Self { root: RootNode::new(), } } pub fn insert(&mut self, key: K, value: V) -> Option<V> { self.root.insert(key, value) } pub fn remove(&mut self, key: K) -> Option<V> { self.root.remove(key) } }