Class: Containers::CSplayTreeMap
- Inherits:
-
Object
- Object
- Containers::CSplayTreeMap
- Defined in:
- ext/containers/splaytree_map/splaytree.c
Instance Method Summary collapse
- #clear ⇒ Object
- #delete(key) ⇒ Object
- #each ⇒ Object
- #empty? ⇒ Boolean
- #get(key) ⇒ Object (also: #[])
- #has_key?(key) ⇒ Boolean
- #height ⇒ Object
- #initialize ⇒ Object constructor
- #max_key ⇒ Object
- #min_key ⇒ Object
- #push(key, value) ⇒ Object (also: #[]=)
- #size ⇒ Object
Constructor Details
#initialize ⇒ Object
221 222 223 224 |
# File 'ext/containers/splaytree_map/splaytree.c', line 221 static VALUE splaytree_init(VALUE self) { return self; } |
Instance Method Details
#clear ⇒ Object
327 328 329 330 331 332 333 334 |
# File 'ext/containers/splaytree_map/splaytree.c', line 327 static VALUE splaytree_clear(VALUE self) { splaytree *tree = get_tree_from_self(self); recursively_free_nodes(tree->root); tree->root = NULL; tree->size = 0; return Qnil; } |
#delete(key) ⇒ Object
319 320 321 322 323 324 325 |
# File 'ext/containers/splaytree_map/splaytree.c', line 319 static VALUE splaytree_delete(VALUE self, VALUE key) { splaytree *tree = get_tree_from_self(self); if(!tree->root) return Qnil; return delete(tree, key); } |
#each ⇒ Object
340 341 342 343 344 |
# File 'ext/containers/splaytree_map/splaytree.c', line 340 static VALUE splaytree_each(VALUE self) { splaytree *tree = get_tree_from_self(self); splay_each(tree, &splaytree_each_helper, NULL); return self; } |
#empty? ⇒ Boolean
272 273 274 275 |
# File 'ext/containers/splaytree_map/splaytree.c', line 272 static VALUE splaytree_is_empty(VALUE self) { splaytree *tree = get_tree_from_self(self); return (tree->root ? Qfalse : Qtrue); } |
#get(key) ⇒ Object Also known as: []
262 263 264 265 |
# File 'ext/containers/splaytree_map/splaytree.c', line 262 static VALUE splaytree_get(VALUE self, VALUE key) { splaytree *tree = get_tree_from_self(self); return get(tree, key); } |
#has_key?(key) ⇒ Boolean
282 283 284 285 286 287 288 289 |
# File 'ext/containers/splaytree_map/splaytree.c', line 282 static VALUE splaytree_has_key(VALUE self, VALUE key) { splaytree *tree = get_tree_from_self(self); if(!tree->root) { return Qfalse; } if(get(tree, key) == Qnil) return Qfalse; return Qtrue; } |
#height ⇒ Object
277 278 279 280 |
# File 'ext/containers/splaytree_map/splaytree.c', line 277 static VALUE splaytree_height(VALUE self) { splaytree *tree = get_tree_from_self(self); return INT2NUM(height(tree->root)); } |
#max_key ⇒ Object
305 306 307 308 309 310 311 312 313 314 315 316 317 |
# File 'ext/containers/splaytree_map/splaytree.c', line 305 static VALUE splaytree_max_key(VALUE self) { splaytree *tree = get_tree_from_self(self); splaytree_node *node; if(!tree->root) return Qnil; node = tree->root; while (node->right) node = node->right; return node->key; } |
#min_key ⇒ Object
291 292 293 294 295 296 297 298 299 300 301 302 303 |
# File 'ext/containers/splaytree_map/splaytree.c', line 291 static VALUE splaytree_min_key(VALUE self) { splaytree *tree = get_tree_from_self(self); splaytree_node *node; if(!tree->root) return Qnil; node = tree->root; while (node->left) node = node->left; return node->key; } |
#push(key, value) ⇒ Object Also known as: []=
256 257 258 259 260 |
# File 'ext/containers/splaytree_map/splaytree.c', line 256 static VALUE splaytree_push(VALUE self, VALUE key, VALUE value) { splaytree *tree = get_tree_from_self(self); insert(tree, key, value); return value; } |
#size ⇒ Object
267 268 269 270 |
# File 'ext/containers/splaytree_map/splaytree.c', line 267 static VALUE splaytree_size(VALUE self) { splaytree *tree = get_tree_from_self(self); return INT2NUM(tree->size); } |