Redundant-counter binomial heap. More...
#include <rc_binomial_heap_.hpp>
Public Types | |
typedef base_type::allocator_type | allocator_type |
typedef base_type::cmp_fn | cmp_fn |
typedef base_type::const_iterator | const_iterator |
typedef base_type::const_pointer | const_pointer |
typedef base_type::const_reference | const_reference |
typedef _Alloc::difference_type | difference_type |
typedef base_type::iterator | iterator |
typedef base_type::point_const_iterator | point_const_iterator |
typedef base_type::point_iterator | point_iterator |
typedef base_type::pointer | pointer |
typedef base_type::reference | reference |
typedef _Alloc::size_type | size_type |
typedef Value_Type | value_type |
Public Member Functions | |
rc_binomial_heap () | |
rc_binomial_heap (const Cmp_Fn &) | |
rc_binomial_heap (const rc_binomial_heap< Value_Type, Cmp_Fn, _Alloc > &) | |
~rc_binomial_heap () | |
iterator | begin () |
const_iterator | begin () const |
void | clear () |
bool | empty () const |
iterator | end () |
const_iterator | end () const |
void | erase (point_iterator) |
template<typename Pred > | |
size_type | erase_if (Pred) |
Cmp_Fn & | get_cmp_fn () |
const Cmp_Fn & | get_cmp_fn () const |
void | join (rc_binomial_heap< Value_Type, Cmp_Fn, _Alloc > &) |
void | join (binomial_heap_base< Value_Type, Cmp_Fn, _Alloc > &) |
size_type | max_size () const |
void | modify (point_iterator, const_reference) |
void | pop () |
point_iterator | push (const_reference) |
size_type | size () const |
template<typename Pred > | |
void | split (Pred, rc_binomial_heap< Value_Type, Cmp_Fn, _Alloc > &) |
template<typename Pred > | |
void | split (Pred, binomial_heap_base< Value_Type, Cmp_Fn, _Alloc > &) |
void | swap (rc_binomial_heap< Value_Type, Cmp_Fn, _Alloc > &) |
void | swap (left_child_next_sibling_heap< Value_Type, Cmp_Fn, _Alloc::size_type, _Alloc > &) |
const_reference | top () const |
Protected Types | |
typedef base_type::node | node |
typedef _Alloc::template rebind< left_child_next_sibling_heap_node_< Value_Type, _Alloc::size_type, _Alloc > >::other | node_allocator |
typedef _Alloc::size_type | node_metadata |
typedef std::pair< node_pointer, node_pointer > | node_pointer_pair |
Protected Member Functions | |
void | actual_erase_node (node_pointer) |
void | bubble_to_top (node_pointer) |
void | clear_imp (node_pointer) |
template<typename It > | |
void | copy_from_range (It, It) |
void | find_max () |
node_pointer | get_new_node_for_insert (const_reference) |
node_pointer | prune (Pred) |
void | swap (binomial_heap_base< Value_Type, Cmp_Fn, _Alloc > &) |
void | swap_with_parent (node_pointer, node_pointer) |
void | to_linked_list () |
void | value_swap (left_child_next_sibling_heap &) |
Static Protected Member Functions | |
static void | make_child_of (node_pointer, node_pointer) |
static node_pointer | parent (node_pointer) |
Protected Attributes | |
node_pointer | m_p_max |
node_pointer | m_p_root |
size_type | m_size |
Private Types | |
typedef binomial_heap_base< Value_Type, Cmp_Fn, _Alloc > | base_type |
typedef base_type::node_const_pointer | node_const_pointer |
typedef base_type::node_pointer | node_pointer |
typedef rc< typename binomial_heap_base< Value_Type, Cmp_Fn, _Alloc >::node, _Alloc > | rc_t |
Private Member Functions | |
node_pointer | link_with_next_sibling (node_pointer) |
void | make_0_exposed () |
void | make_binomial_heap () |
Private Attributes | |
rc_t | m_rc |
Redundant-counter binomial heap.
typedef base_type::allocator_type __gnu_pbds::detail::rc_binomial_heap< Value_Type, Cmp_Fn, _Alloc >::allocator_type |
|
private |
typedef base_type::cmp_fn __gnu_pbds::detail::rc_binomial_heap< Value_Type, Cmp_Fn, _Alloc >::cmp_fn |
typedef base_type::const_iterator __gnu_pbds::detail::rc_binomial_heap< Value_Type, Cmp_Fn, _Alloc >::const_iterator |
typedef base_type::const_pointer __gnu_pbds::detail::rc_binomial_heap< Value_Type, Cmp_Fn, _Alloc >::const_pointer |
typedef base_type::const_reference __gnu_pbds::detail::rc_binomial_heap< Value_Type, Cmp_Fn, _Alloc >::const_reference |
typedef _Alloc::difference_type __gnu_pbds::detail::rc_binomial_heap< Value_Type, Cmp_Fn, _Alloc >::difference_type |
typedef base_type::iterator __gnu_pbds::detail::rc_binomial_heap< Value_Type, Cmp_Fn, _Alloc >::iterator |
|
protectedinherited |
|
protectedinherited |
|
private |
|
protectedinherited |
|
private |
|
protectedinherited |
typedef base_type::point_const_iterator __gnu_pbds::detail::rc_binomial_heap< Value_Type, Cmp_Fn, _Alloc >::point_const_iterator |
typedef base_type::point_iterator __gnu_pbds::detail::rc_binomial_heap< Value_Type, Cmp_Fn, _Alloc >::point_iterator |
typedef base_type::pointer __gnu_pbds::detail::rc_binomial_heap< Value_Type, Cmp_Fn, _Alloc >::pointer |
|
private |
typedef base_type::reference __gnu_pbds::detail::rc_binomial_heap< Value_Type, Cmp_Fn, _Alloc >::reference |
typedef _Alloc::size_type __gnu_pbds::detail::rc_binomial_heap< Value_Type, Cmp_Fn, _Alloc >::size_type |
typedef Value_Type __gnu_pbds::detail::rc_binomial_heap< Value_Type, Cmp_Fn, _Alloc >::value_type |
__gnu_pbds::detail::rc_binomial_heap< Value_Type, Cmp_Fn, _Alloc >::rc_binomial_heap | ( | ) |
__gnu_pbds::detail::rc_binomial_heap< Value_Type, Cmp_Fn, _Alloc >::rc_binomial_heap | ( | const Cmp_Fn & | ) |
__gnu_pbds::detail::rc_binomial_heap< Value_Type, Cmp_Fn, _Alloc >::rc_binomial_heap | ( | const rc_binomial_heap< Value_Type, Cmp_Fn, _Alloc > & | ) |
__gnu_pbds::detail::rc_binomial_heap< Value_Type, Cmp_Fn, _Alloc >::~rc_binomial_heap | ( | ) |
|
inlineprotectedinherited |
|
inlineinherited |
|
inlineinherited |
|
protectedinherited |
|
inline |
|
protectedinherited |
|
protectedinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
void __gnu_pbds::detail::rc_binomial_heap< Value_Type, Cmp_Fn, _Alloc >::erase | ( | point_iterator | ) |
size_type __gnu_pbds::detail::rc_binomial_heap< Value_Type, Cmp_Fn, _Alloc >::erase_if | ( | Pred | ) |
|
inlineprotectedinherited |
|
inherited |
|
inherited |
|
inlineprotectedinherited |
void __gnu_pbds::detail::rc_binomial_heap< Value_Type, Cmp_Fn, _Alloc >::join | ( | rc_binomial_heap< Value_Type, Cmp_Fn, _Alloc > & | ) |
|
inherited |
|
inlineprivate |
|
private |
|
private |
|
inlinestaticprotectedinherited |
|
inlineinherited |
void __gnu_pbds::detail::rc_binomial_heap< Value_Type, Cmp_Fn, _Alloc >::modify | ( | point_iterator | , |
const_reference | |||
) |
|
inlinestaticprotectedinherited |
|
inline |
|
protectedinherited |
|
inline |
|
inlineinherited |
void __gnu_pbds::detail::rc_binomial_heap< Value_Type, Cmp_Fn, _Alloc >::split | ( | Pred | , |
rc_binomial_heap< Value_Type, Cmp_Fn, _Alloc > & | |||
) |
|
inherited |
void __gnu_pbds::detail::rc_binomial_heap< Value_Type, Cmp_Fn, _Alloc >::swap | ( | rc_binomial_heap< Value_Type, Cmp_Fn, _Alloc > & | ) |
|
inherited |
|
protectedinherited |
|
inlineprotectedinherited |
|
protectedinherited |
|
inlineinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
private |
|
protectedinherited |