|
Aleph-w 3.0
A C++ Library for Data Structures and Algorithms
|
Represents a node in the Fibonacci Heap. More...
#include <tpl_fibonacci_heap.H>
Public Member Functions | |
| Node (const T &d) | |
Construct a node copying d into the internal storage. | |
| Node (T &&d) noexcept(std::is_nothrow_move_constructible_v< T >) | |
Construct a node moving d into the internal storage. | |
| template<typename Arg , typename... Args, std::enable_if_t<(sizeof...(Args) >=1)||(!std::is_same_v< std::decay_t< Arg >, T > &&!std::is_same_v< std::decay_t< Arg >, Node >), int > = 0> | |
| Node (Arg &&arg, Args &&... args) | |
| Perfect-forwarding constructor for in-place construction. | |
Public Attributes | |
| T | data |
| The data stored in this node. | |
| Node * | parent = nullptr |
| Parent node (nullptr if root) | |
| Node * | child = nullptr |
| Pointer to one child (head of child list) | |
| Node * | left = this |
| Left sibling in circular list. | |
| Node * | right = this |
| Right sibling in circular list. | |
| size_t | degree = 0 |
| Number of children. | |
| bool | mark = false |
| Has this node lost a child since becoming non-root? | |
Represents a node in the Fibonacci Heap.
This structure is publicly accessible to allow external algorithms (such as Dijkstra or Prim) to store handles (pointers) to nodes and perform efficient decrease_key operations.
Definition at line 125 of file tpl_fibonacci_heap.H.
|
inlineexplicit |
Construct a node copying d into the internal storage.
Definition at line 136 of file tpl_fibonacci_heap.H.
|
inlineexplicitnoexcept |
Construct a node moving d into the internal storage.
Definition at line 139 of file tpl_fibonacci_heap.H.
|
inlineexplicit |
Perfect-forwarding constructor for in-place construction.
This overload allows callers of Fibonacci_Heap::emplace() to forward arbitrary constructor arguments for T without creating temporaries.
| Arg | First argument forwarded to the T constructor. |
| Args | Remaining constructor arguments. |
| arg | First argument forwarded to the stored value. |
| args | Remaining arguments forwarded to the stored value. |
Definition at line 157 of file tpl_fibonacci_heap.H.
| Node* Aleph::Fibonacci_Heap< T, Compare >::Node::child = nullptr |
Pointer to one child (head of child list)
Definition at line 129 of file tpl_fibonacci_heap.H.
Referenced by Aleph::Fibonacci_Heap< T, Compare >::cut(), Aleph::Fibonacci_Heap< T, Compare >::delete_all_nodes(), Aleph::Fibonacci_Heap< T, Compare >::delete_node(), and Aleph::Fibonacci_Heap< T, Compare >::link().
| T Aleph::Fibonacci_Heap< T, Compare >::Node::data |
The data stored in this node.
Definition at line 127 of file tpl_fibonacci_heap.H.
Referenced by Aleph::Fibonacci_Heap< T, Compare >::add_to_root_list(), Aleph::Fibonacci_Heap< T, Compare >::consolidate(), Aleph::Fibonacci_Heap< T, Compare >::decrease_key(), Aleph::Fibonacci_Heap< T, Compare >::decrease_key(), Aleph::Fibonacci_Heap< T, Compare >::get_min(), Aleph::Fibonacci_Heap< T, Compare >::merge(), and Aleph::Fibonacci_Heap< T, Compare >::update_key().
| size_t Aleph::Fibonacci_Heap< T, Compare >::Node::degree = 0 |
Number of children.
Definition at line 132 of file tpl_fibonacci_heap.H.
Referenced by Aleph::Fibonacci_Heap< T, Compare >::consolidate(), Aleph::Fibonacci_Heap< T, Compare >::cut(), and Aleph::Fibonacci_Heap< T, Compare >::link().
| Node* Aleph::Fibonacci_Heap< T, Compare >::Node::left = this |
Left sibling in circular list.
Definition at line 130 of file tpl_fibonacci_heap.H.
Referenced by Aleph::Fibonacci_Heap< T, Compare >::add_to_root_list(), Aleph::Fibonacci_Heap< T, Compare >::consolidate(), Aleph::Fibonacci_Heap< T, Compare >::cut(), Aleph::Fibonacci_Heap< T, Compare >::delete_all_nodes(), Aleph::Fibonacci_Heap< T, Compare >::delete_node(), and Aleph::Fibonacci_Heap< T, Compare >::link().
| bool Aleph::Fibonacci_Heap< T, Compare >::Node::mark = false |
Has this node lost a child since becoming non-root?
Definition at line 133 of file tpl_fibonacci_heap.H.
Referenced by Aleph::Fibonacci_Heap< T, Compare >::cut().
| Node* Aleph::Fibonacci_Heap< T, Compare >::Node::parent = nullptr |
Parent node (nullptr if root)
Definition at line 128 of file tpl_fibonacci_heap.H.
Referenced by Aleph::Fibonacci_Heap< T, Compare >::add_to_root_list(), Aleph::Fibonacci_Heap< T, Compare >::consolidate(), Aleph::Fibonacci_Heap< T, Compare >::cut(), Aleph::Fibonacci_Heap< T, Compare >::decrease_key(), Aleph::Fibonacci_Heap< T, Compare >::decrease_key(), Aleph::Fibonacci_Heap< T, Compare >::delete_node(), and Aleph::Fibonacci_Heap< T, Compare >::extract_min().
| Node* Aleph::Fibonacci_Heap< T, Compare >::Node::right = this |
Right sibling in circular list.
Definition at line 131 of file tpl_fibonacci_heap.H.
Referenced by Aleph::Fibonacci_Heap< T, Compare >::add_to_root_list(), Aleph::Fibonacci_Heap< T, Compare >::consolidate(), Aleph::Fibonacci_Heap< T, Compare >::cut(), Aleph::Fibonacci_Heap< T, Compare >::delete_all_nodes(), Aleph::Fibonacci_Heap< T, Compare >::delete_node(), Aleph::Fibonacci_Heap< T, Compare >::extract_min(), Aleph::Fibonacci_Heap< T, Compare >::link(), and Aleph::Fibonacci_Heap< T, Compare >::merge().