|
cgv
|
#include <dynamic_priority_queue.h>
Classes | |
| struct | extended_element |
| store per element, whether it is empty and a link to the next empty element or to the heap location More... | |
Public Member Functions | |
| dynamic_priority_queue () | |
| empty construction | |
| void | clear () |
| remove all elements | |
| bool | empty () const |
| check if heap is empty | |
| size_t | size () const |
| return the number of elements in the heap | |
| size_t | size_of_element_container () const |
| return the number of elements in the heap | |
queue interface | |
| unsigned int | top () const |
| return the top element | |
| void | pop () |
| remove top element | |
| int | extract () |
| extract top element | |
dynamic element access | |
| bool | is_empty (unsigned int idx) const |
| const element_type & | operator[] (unsigned int idx) const |
| element_type & | operator[] (unsigned int idx) |
| unsigned int | insert (const element_type &e) |
| insert the given element and return its index in the element container | |
| void | update (unsigned int idx) |
| update after a change to the predicate | |
| void | remove (unsigned int idx) |
| remove element at location idx | |
Protected Member Functions | |
| bool | valid (unsigned int hp) const |
| check if a position is outside of range | |
| void | updateLink (unsigned int hp) |
| make sure that the link for hp is ok | |
| bool | isBetter (unsigned int hp1, unsigned int hp2) const |
| check if hp1 is less than hp2, if true, exchange elements | |
| bool | exchangeIfBetter (unsigned int hp1, unsigned int hp2) |
| check if hp1 is less than hp2, if true, exchange elements | |
| void | move (unsigned int hp1, unsigned int hp2) |
| move one element to another position, that should be empty | |
| void | removeHeap (unsigned int hp) |
| remove an element on a certain heap pos | |
| void | positionDownward (unsigned int &hp) |
| move an element downward to the correct position | |
| bool | positionUpward (unsigned int &hp) |
| move an element upward to the correct position | |
Protected Attributes | |
| std::vector< extended_element > | elements |
| container for elements | |
| int | last_empty_element |
| store index of last empty element or -1 if there is non | |
| std::vector< unsigned int > | heap |
| store indices to the elements on the heap | |
IndexHeap is a heap that allows changing of the elements