Methods
Public Class
Public Instance
Public Class methods
Public Instance methods
delete
(p1)
[show source]
static VALUE rbtree_delete(VALUE self, VALUE key) { VALUE deleted_value; rbtree *tree = get_tree_from_self(self); if(!tree->root) return Qnil; tree->root = delete(tree, tree->root, key, &deleted_value); if(tree->root) tree->root->color = BLACK; if(deleted_value) { return deleted_value; } return Qnil; }
delete_max
()
[show source]
static VALUE rbtree_delete_max(VALUE self) { VALUE deleted_value; rbtree *tree = get_tree_from_self(self); if(!tree->root) return Qnil; tree->root = delete_max(tree->root, &deleted_value); if(tree->root) tree->root->color = BLACK; if(deleted_value) { return deleted_value; } return Qnil; }
delete_min
()
[show source]
static VALUE rbtree_delete_min(VALUE self) { VALUE deleted_value; rbtree *tree = get_tree_from_self(self); if(!tree->root) return Qnil; tree->root = delete_min(tree->root, &deleted_value); if(tree->root) tree->root->color = BLACK; if(deleted_value) { return deleted_value; } return Qnil; }
each
()
[show source]
static VALUE rbtree_each(VALUE self) { rbtree *tree = get_tree_from_self(self); rbt_each(tree, &rbtree_each_helper, NULL); return self; }
empty?
()
[show source]
static VALUE rbtree_is_empty(VALUE self) { rbtree *tree = get_tree_from_self(self); return (tree->root ? Qfalse : Qtrue); }
get
(p1)
[show source]
static VALUE rbtree_get(VALUE self, VALUE key) { rbtree *tree = get_tree_from_self(self); return get(tree, tree->root, key); }
has_key?
(p1)
[show source]
static VALUE rbtree_has_key(VALUE self, VALUE key) { rbtree *tree = get_tree_from_self(self); if(!tree->root) { return Qfalse; } if(get(tree, tree->root, key) == Qnil) return Qfalse; return Qtrue; }
height
()
[show source]
static VALUE rbtree_height(VALUE self) { rbtree *tree = get_tree_from_self(self); return INT2NUM(height(tree->root)); }
max_key
()
[show source]
static VALUE rbtree_max_key(VALUE self) { rbtree *tree = get_tree_from_self(self); if(!tree->root) return Qnil; return max_key(tree->root); }
min_key
()
[show source]
static VALUE rbtree_min_key(VALUE self) { rbtree *tree = get_tree_from_self(self); if(!tree->root) return Qnil; return min_key(tree->root); }
push
(p1, p2)
[show source]
static VALUE rbtree_push(VALUE self, VALUE key, VALUE value) { rbtree *tree = get_tree_from_self(self); tree->root = insert(tree, tree->root, key, value); return value; }
size
()
[show source]
static VALUE rbtree_size(VALUE self) { rbtree *tree = get_tree_from_self(self); return INT2NUM(size(tree->root)); }