Methods
Public Class
Public Instance
Public Class methods
Public Instance methods
clear
()
[show source]
static VALUE splaytree_clear(VALUE self) {
splaytree *tree = get_tree_from_self(self);
recursively_free_nodes(tree->root);
tree->root = NULL;
return Qnil;
}
delete
(p1)
[show source]
static VALUE splaytree_delete(VALUE self, VALUE key) {
VALUE deleted = Qnil;
splaytree *tree = get_tree_from_self(self);
if(!tree->root)
return Qnil;
tree->root = delete(tree, tree->root, key, &deleted);
return deleted;
}
each
()
[show source]
static VALUE splaytree_each(VALUE self) {
splaytree *tree = get_tree_from_self(self);
splay_each(tree, &splaytree_each_helper, NULL);
return self;
}
empty?
()
[show source]
static VALUE splaytree_is_empty(VALUE self) {
splaytree *tree = get_tree_from_self(self);
return (tree->root ? Qfalse : Qtrue);
}
get
(p1)
[show source]
static VALUE splaytree_get(VALUE self, VALUE key) {
splaytree *tree = get_tree_from_self(self);
return get(tree, key);
}
has_key?
(p1)
[show source]
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
()
[show source]
static VALUE splaytree_height(VALUE self) {
splaytree *tree = get_tree_from_self(self);
return INT2NUM(height(tree->root));
}
max_key
()
[show source]
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
()
[show source]
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
(p1, p2)
[show source]
static VALUE splaytree_push(VALUE self, VALUE key, VALUE value) {
splaytree *tree = get_tree_from_self(self);
tree->root = insert(tree, tree->root, key, value);
return value;
}
size
()
[show source]
static VALUE splaytree_size(VALUE self) {
splaytree *tree = get_tree_from_self(self);
if(!tree->root) { return INT2NUM(0); }
return INT2NUM(tree->root->size);
}