(&mut self, key: &K)
| 160 | } |
| 161 | |
| 162 | fn delete(&mut self, key: &K) { |
| 163 | if self.contains(key) { |
| 164 | let mut root = NodeQuery::new(self.root); |
| 165 | if !root.left().is_red() && !root.right().is_red() { |
| 166 | root.set_color(Color::Red); |
| 167 | } |
| 168 | root.node = delete(root.node, key); |
| 169 | root.set_color(Color::Black); |
| 170 | self.root = root.node; |
| 171 | self.set_size(self.size() - 1); |
| 172 | } |
| 173 | } |
| 174 | |
| 175 | fn contains(&self, key: &K) -> bool { |
| 176 | unsafe { bst::find(self.root, key).is_some() } |