File pairing_queue.hpp¶
-
namespace
pairing_queue¶ -
template <typename P>
class pairing_queuepairing_queue - #include <pairing_queue.hpp>
A priority queue based on a pairing heap, with fixed memory footprint and support for a decrease-key operation.
Subclassed by pairing_queue::pairing_queue_fast_reset< P >
Public Types
-
typedef P pairing_queue::pairing_queue
value_type¶
Public Functions
-
pairing_queue::pairing_queue
pairing_queue(int n)¶
-
void pairing_queue::pairing_queue
reset_fill(const P &v) Reset the queue and fill the values with a default.
-
bool pairing_queue::pairing_queue
has(int index) const¶
-
void pairing_queue::pairing_queue
reset() Reset the queue and set the default to the maximum value.
-
bool pairing_queue::pairing_queue
delete_min() Remove the minimum value return true if any change is made.
-
bool pairing_queue::pairing_queue
pop_min(int &key, P &value) Remove and return (in args) the minimum key, value pair.
-
void pairing_queue::pairing_queue
decrease_value(int k, const P &v) Decrease the value of k to v NOTE: Assumes that v is lower than the current value of k.
-
bool pairing_queue::pairing_queue
check_decrease_value(int k, const P &v) Decrease the value of k to v Does nothing if v isn’t actually a decrease.
-
void pairing_queue::pairing_queue
set_value(int k, const P &v)¶
-
void pairing_queue::pairing_queue
set_value_unsafe(int k, const P &v)¶
-
P pairing_queue::pairing_queue
min_value() const¶
-
int pairing_queue::pairing_queue
min_key() const¶
-
bool pairing_queue::pairing_queue
empty(void) const¶
-
bool pairing_queue::pairing_queue
empty(int k) const¶
-
P pairing_queue::pairing_queue
value(int k) const¶
Protected Functions
-
int pairing_queue::pairing_queue
merge_roots(int a, int b)¶
-
int pairing_queue::pairing_queue
merge_roots_unsafe(int a, int b)¶
-
int pairing_queue::pairing_queue
merge_roots_unchecked(int a, int b)¶
-
int pairing_queue::pairing_queue
merge_pairs(int a)¶
-
void pairing_queue::pairing_queue
remove(int a)¶
-
void pairing_queue::pairing_queue
decrease(int a)¶
Protected Attributes
-
vector<P> pairing_queue::pairing_queue
val¶
-
vector<int> pairing_queue::pairing_queue
next¶
-
vector<int> pairing_queue::pairing_queue
desc¶
-
vector<int> pairing_queue::pairing_queue
prev¶
-
int pairing_queue::pairing_queue
root¶
-
typedef P pairing_queue::pairing_queue
-
template <typename P>
class pairing_queuepairing_queue_fast_reset: public pairing_queue::pairing_queue<P> - #include <pairing_queue.hpp>
This is a specialization of the pairing_queue that has a constant time reset method, at the expense of an extra check when values are set or updated.
Public Functions
-
pairing_queue::pairing_queue_fast_reset
pairing_queue_fast_reset(int n)¶
-
void pairing_queue::pairing_queue_fast_reset
reset()¶
-
void pairing_queue::pairing_queue_fast_reset
set_value_unsafe(int k, const P &v)¶
-
void pairing_queue::pairing_queue_fast_reset
set_value(int k, const P &v)¶
-
bool pairing_queue::pairing_queue_fast_reset
check_decrease_value(int k, const P &v)¶
-
P pairing_queue::pairing_queue_fast_reset
get_value(int k) const¶
Private Types
-
template<>
using pairing_queue::pairing_queue_fast_reset<P>super= pairing_queue<P>¶
Private Functions
-
bool pairing_queue::pairing_queue_fast_reset
current(int k)¶
Private Members
-
vector<int> pairing_queue::pairing_queue_fast_reset
time¶
-
pairing_queue::pairing_queue_fast_reset
-
template <typename P>