#include <tpl_binHeap.H>
Tipos públicos | |
typedef BinHeapNodeVtl< Key > | Node |
El tipo de nodo del heap. | |
Tipos públicos heredados desde Aleph::GenBinHeap< BinHeapNodeVtl, Key, Compare > | |
typedef BinHeapNodeVtl< Key > | Node |
Otros miembros heredados | |
Métodos públicos heredados desde Aleph::GenBinHeap< BinHeapNodeVtl, Key, Compare > | |
Compare & | key_comp () |
Compare & | get_compare () |
void | swap (GenBinHeap &h) |
Node * | getRoot () |
Node * | getRoot () const |
void | for_each_in_preorder (Node *p, Op &op) |
void | for_each_in_preorder (Node *p, Op &&op()) |
bool | level_traverse (Node *root, Op &operation) |
bool | level_traverse (Node *root, Op &&operation=Op()) |
bool | level_traverse (Node *root, Op &operation) const |
bool | level_traverse (Node *root, Op &&operation=Op()) const |
GenBinHeap (Compare &__cmp) | |
GenBinHeap (Compare &&__cmp=Compare()) | |
Node * | insert (Node *p) |
Node * | getMin () throw (std::exception, std::underflow_error) |
Node * | getMax () throw (std::exception, std::underflow_error) |
void | update (Node *p) |
Node * | remove (Node *node) throw (std::exception, std::underflow_error) |
void | remove_all_and_delete () |
Node * | top () const throw (std::exception, std::underflow_error) |
const size_t & | size () const |
Retorna la cardinalidad del heap. | |
bool | is_empty () const |
Retorna true si el heap está vacío. | |
bool | verify_heap () |
Métodos protegidos heredados desde Aleph::GenBinHeap< BinHeapNodeVtl, Key, Compare > | |
Node * | advance_left (Node *p) |
Node * | advance_right (Node *p) |
virtual bool | verify_heap (Node *p) |
Heap de nodos con destructor virtual.
La clase BinHeapVtl instrumenta un heap de nodos con destructor virtual. Este heap no está implementado mediante un arreglo, sino con un árbol binario. Esto proporciona la gran ventaja de ser altamente dinámico. La memoria empleada es pues proporcional a la cantidad de nodos del heap.
Key | la clave que guarda cada nodo. |
Compare | el criterio de comparación entre las claves de los nodos; por omisión es la relación "menor que". |