Tipos públicos | |
typedef NodeType< Key > | Node |
Tipo de nodo binario. | |
Métodos públicos | |
Node *& | getRoot () |
Obtiene un apuntador a la raíz del árbol binario de búsqueda aleatorizado. | |
gsl_rng * | gsl_rng_object () |
Obtiene un puntero al objeto gsl_rng generador de números aleatorios. | |
Node * | insert (Node *p) |
Inserción en un árbol binario de búsqueda aleatorizado. | |
Node * | random_insert (Node *root, Node *node) |
Inserción aleatorizada en un árbol binario de búsqueda con rangos. | |
Node * | random_join_exclusive (Node *tl, Node *tr) |
Unión exclusiva aleatoria de dos árboles binarios de búsqueda, exclusivos, con rangos. | |
Node * | random_remove (Node *&root, const Key &key) |
Eliminación aleatorizada en un árbol binario con rangos. | |
Node * | remove (const Key &key) |
Elimina una clave de un árbol binario de búsqueda aleatorizado. | |
Node * | search (const Key &key) |
Busca la clave key en el árbol binario de búsqueda aleatorizado. |
La clase Rand_Tree maneja nodos sin destructor virtual.
Key | el tipo de clave a guardar en los nodos. | |
Compare | el criterio de comparación entre las claves de los nodos. |
Definición en la línea 363 del archivo tpl_rand_tree.H.
insert(p) inserta el nodo p en el árbol binario de búsqueda aleatorizado this.
[in] | p | el nodo a insertar. |
Definición en la línea 186 del archivo tpl_rand_tree.H.
random_insert(root,node) inserta aleatoriamente el nodo node en el árbol binario de búsqueda con rangos root independientemente del valor de clave que contenga node. El árbol binario de búsqueda resultante siempre es aleatorio en el sentido en que es equivalente al producido por una secuencia de inserción aleatoria.
La rutina pertenece a la clase Gen_Rand_Tree, pero puede usarse en general para cualquier clase de árbol binario de búsqueda con rango derivado de BinNodeXt. Se circunscribe dentro de Gen_Rand_Tree por el generador de números aleatorios.
[in] | root | la raíz del árbol binario de búsqueda con rangos. |
[in] | node | el nodo a insertar. |
Definición en la línea 139 del archivo tpl_rand_tree.H.
Referenciado por Gen_Rand_Tree< Aleph::RandNodeVtl< Key >, Key, Compare >::insert(), y Gen_Rand_Tree< Aleph::RandNodeVtl< Key >, Key, Compare >::random_insert().
random_remove(root, key) busca en el árbol binario con rangos la clave key y, en caso de encontrar un nodo que contenga esa clave, efectúa una eliminación aleatorizada a través de Gen_Rand_Tree::random_join_exclusive() de los subárboles del nodo eliminado. El árbol binario de búsqueda resultante siempre es aleatorio en el sentido en que es equivalente al producido por una secuencia de inserción aleatoria.
La rutina puede ser utilizada por cualquier clase de árbol binario de búsqueda con rangos derivada de BinNodeXt. Su presencia dentro de la clase Gen_Rand_Tree obedece a la disponibilidad del generador de números aleatorios.
[in,out] | root | raíz del árbol binario de búsqueda con rangos. |
[in] | key | clave a eliminar. |
Definición en la línea 278 del archivo tpl_rand_tree.H.
Referenciado por Gen_Rand_Tree< Aleph::RandNodeVtl< Key >, Key, Compare >::random_remove(), y Gen_Rand_Tree< Aleph::RandNodeVtl< Key >, Key, Compare >::remove().
Node* remove | ( | const Key & | key | ) | [inline, inherited] |
remove(key) busca en el árbol binario de búsqueda aleatorizado la clave key y, en caso de encontrar un nodo que contenga esa clave, efectúa su eliminación aleatorizada.
[in] | key | clave a eliminar. |
Definición en la línea 322 del archivo tpl_rand_tree.H.