#include <tpl_binHeap.H>
Inheritance diagram for Aleph::BinHeap< Key, Compare >:
Collaboration diagram for Aleph::BinHeap< Key, Compare >:Public Types | |
| using | Node = BinHeapNode< Key > |
| El tipo de nodo del heap. | |
Public Member Functions | |
| Compare & | key_comp () noexcept |
| Compare & | get_compare () noexcept |
| void | swap (GenBinHeap &h) noexcept |
| Node * | getRoot () noexcept |
| Node * | getRoot () const noexcept |
| bool | preorder_traverse (Operation op) const noexcept(noexcept(op)) |
| void | for_each_in_preorder (Operation &operation) const |
| void | for_each_in_preorder (Operation &&operation=Operation()) const |
| void | for_each_in_inorder (Operation &operation) const |
| void | for_each_in_inorder (Operation &&operation=Operation()) const |
| bool | level_traverse (Op operation=Op()) const |
| Node * | insert (Node *p) noexcept |
| Node * | getMin_ne () noexcept |
| Node * | getMin () |
| Node * | getMax () |
| void | update (Node *p) noexcept |
| Node * | remove (Node *node) |
| void | remove_all_and_delete () noexcept |
| Node * | top () |
| const size_t & | size () const noexcept |
| Retorna la cardinalidad del heap. | |
| bool | is_empty () const noexcept |
| Retorna true si el heap está vacÃo. | |
| bool | verify_heap () const |
Protected Member Functions | |
| virtual bool | verify_heap (Node *p) const |
Static Protected Member Functions | |
| static Node * | advance_left (Node *p) noexcept |
| static Node * | advance_right (Node *p) noexcept |
Protected Attributes | |
| Compare | cmp |
Heap de nodos sin destructor virtual.
La clase BinHeap instrumenta un heap de nodos. 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". |
|
inlineinherited |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
|
inlineinherited |
Elimina del heap el nodo de menor prioridad.
getMIn() extrae del heap this el nodo que contenga el menor valor de prioridad según el criterio de comparación definido en la declaración.
| underflow_error | si el heap está vacÃo. |
|
inlinenoexceptinherited |
Inserta un nodo en un heap.
insert(p) inserta en el heap this el nodo p.
| [in] | p | el nodo a insertar. |
|
inlineinherited |
Elimina del heap el nodo node.
remove(node) elimina del heap el nodo node.
| [in] | node | puntero al nodo a eliminar. |
| underflow_error | si el heap está vacÃo |
|
inlinenoexceptinherited |
Borra todos los nodos del heap, invoca a los destructores de los nodos eliminados y libera toda la memoria
|
inlineinherited |
Retorna el nodo con menor prioridad según el criterio de comparación especificado en la declaración.
|
inlinenoexceptinherited |
Actualiza prioridad de un nodo contenido en el heap.
update(p) toma un nodo del heap cuya prioridad haya sido modificada y actualiza su prioridad dentro del heap. La idea es que si por alguna razón una prioridad debe ser modificada, entonces el orden de extracción pueda actualizarse.
| [in] | p | puntero al nodo que se desea actualizar |