|
Aleph-w 3.0
A C++ Library for Data Structures and Algorithms
|
Node belonging to a double circular linked list with header node. More...
#include <tpl_dnode.H>
Classes | |
| class | Iterator |
Iterator on a list of Dnode objects. More... | |
Public Types | |
| using | key_type = T |
| The data type. | |
Public Member Functions | |
| Dnode< T > *& | get_next () const noexcept |
Return the next node to this | |
| Dnode< T > *& | get_prev () const noexcept |
Return the previous node to this | |
| Dnode< T > * | remove_prev () noexcept |
Remove the previous node to this; return its address. | |
| Dnode< T > * | remove_next () noexcept |
Remove the next node to this; return its address. | |
| Dnode< T > *& | get_first_ne () const noexcept |
| Get the first node. | |
| Dnode< T > *& | get_last_ne () const noexcept |
| Get the last node. | |
| Dnode< T > *& | get_first () const |
| Get the first node. | |
| Dnode< T > *& | get_last () const |
| Get the last node. | |
| Dnode< T > * | remove_last_ne () noexcept |
| Remove the last node and return its address. | |
| Dnode< T > * | remove_first_ne () noexcept |
| Remove the first node and return its address. | |
| Dnode< T > * | remove_last () |
| Remove the last node and return its address. | |
| Dnode< T > * | remove_first () |
| Remove the first node and return its address. | |
| Dnode () noexcept | |
| Dnode (const T &item) | |
Construct a node with a copy of item | |
| Dnode (T &&item) | |
| Construct a new node with the item moved. | |
| Dnode & | swap (Dnode &p) |
Swap this with p | |
| Dnode (const Dnode &node) | |
| Copy constructor. | |
| Dnode (Dnode &&node) noexcept | |
| Move constructor. | |
| Dnode & | operator= (const Dnode &p) |
| Copy assigment. | |
| Dnode & | operator= (Dnode &&p) |
| Move asignment. | |
| T & | get_data () noexcept |
| Return a modifiable reference to the data contained in the node. | |
| const T & | get_data () const noexcept |
| Return a modifiable reference to the data contained in the node. | |
| T & | get_key () noexcept |
| const T & | get_key () const noexcept |
Public Member Functions inherited from Aleph::Dlink | |
| template<typename T > | |
| Dnode< T > * | to_dnode () noexcept |
| template<typename T > | |
| const Dnode< T > * | to_dnode () const noexcept |
| template<typename T > | |
| T & | to_data () noexcept |
| template<typename T > | |
| const T & | to_data () const noexcept |
| Dlink () noexcept | |
| Initialize a node or an empty list. | |
| Dlink (const Dlink &l) noexcept | |
| Copy constructor. | |
| void | swap (Dlink *link) noexcept |
Swap this with list whose header is link. | |
| void | swap (Dlink &l) noexcept |
Swap this with list whose header is l. | |
| Dlink (Dlink &&l) noexcept | |
| Construct a new list with the items of l moved. | |
| Dlink & | operator= (const Dlink &l) noexcept |
| Copy assignation. | |
| Dlink & | operator= (Dlink &&l) noexcept |
| Move assignation. | |
| void | reset () noexcept |
Reset this | |
| void | init () noexcept |
| constexpr bool | is_empty () const noexcept |
Return true if this (as header node) is empty. | |
| constexpr bool | is_unitarian () const noexcept |
Return true if this (as header node) has exactly one element. | |
| constexpr bool | is_unitarian_or_empty () const noexcept |
Return true if this (as header node) has zero or one element. | |
| void | insert (Dlink *node) noexcept |
Insert node after this. | |
| void | push (Dlink *node) noexcept |
| void | append (Dlink *node) noexcept |
Insert node before this. | |
| Dlink *& | get_next () const noexcept |
Return the link that is after this | |
| Dlink *& | get_prev () const noexcept |
Return the link that is before this | |
| constexpr Dlink *& | get_first_ne () const noexcept |
If this is a header node, it return the first node of this | |
| constexpr Dlink *& | get_last_ne () const noexcept |
If this is a header node, it return the last node of this | |
| constexpr Dlink *& | get_first () const noexcept |
If this is a header node, it return the first node of this | |
| constexpr Dlink *& | get_last () const noexcept |
If this is a header node, it return the last node of this | |
| void | wrap_header (Dlink *l) noexcept |
| Wrap a header to a list (without header). | |
| void | insert_list (Dlink *head) noexcept |
Insert the list head before this | |
| void | append_list (Dlink *head) noexcept |
Insert the list head after this | |
| void | splice (Dlink *l) noexcept |
Insert a list l without header node after the node this. | |
| void | concat_list (Dlink *head) noexcept |
Concatenate list head to list this | |
| void | concat_list (Dlink &head) noexcept |
| Dlink * | del () noexcept |
Remove this from the list. this must not be a header node. | |
| void | erase () noexcept |
| Dlink * | remove_prev () noexcept |
Remove the item that is before this | |
| Dlink * | remove_next () noexcept |
Remove the item that is after this | |
| Dlink * | remove_last_ne () noexcept |
| Dlink * | remove_first_ne () noexcept |
| Dlink * | remove_last () noexcept |
| Dlink * | remove_first () noexcept |
| Dlink * | top () const |
| Dlink * | pop () |
| size_t | reverse_list () noexcept |
| Reverse the list. | |
| size_t | reverse () noexcept |
| size_t | split_list_ne (Dlink &l, Dlink &r) noexcept |
Split this in the middle in two lists. | |
| size_t | split_list (Dlink &l, Dlink &r) noexcept |
| Dlink | cut_list (Dlink *link) noexcept |
Cut this from link. | |
| void | remove_all_and_delete () noexcept |
| Remove and free memory for all the items of list. | |
| void | rotate_left (size_t n) |
| Rotate to left the list n positions. | |
| void | rotate_right (size_t n) |
| Analogous to rotate_left() but to right. | |
| bool | check () |
Return true if the list is consistent. | |
Static Public Member Functions | |
| static Dnode * | data_to_node (T &data) noexcept |
Given an reference to the data in the node, returns a pointer to the Dnode object that contains it. | |
Private Attributes | |
| T | data |
Additional Inherited Members | |
Protected Attributes inherited from Aleph::Dlink | |
| Dlink * | prev |
| Dlink * | next |
Node belonging to a double circular linked list with header node.
Definition at line 105 of file tpl_dnode.H.
The data type.
Definition at line 238 of file tpl_dnode.H.
|
inlinenoexcept |
Definition at line 171 of file tpl_dnode.H.
Construct a node with a copy of item
Definition at line 178 of file tpl_dnode.H.
Construct a new node with the item moved.
Definition at line 185 of file tpl_dnode.H.
Copy constructor.
Definition at line 201 of file tpl_dnode.H.
Move constructor.
Definition at line 209 of file tpl_dnode.H.
|
inlinestaticnoexcept |
Given an reference to the data in the node, returns a pointer to the Dnode object that contains it.
Definition at line 248 of file tpl_dnode.H.
References Aleph::Dnode< T >::data, Aleph::maps(), and offset.
Referenced by Aleph::DynDlist< T >::remove().
Return a modifiable reference to the data contained in the node.
Definition at line 235 of file tpl_dnode.H.
References Aleph::Dnode< T >::data.
|
inlinenoexcept |
Return a modifiable reference to the data contained in the node.
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
Definition at line 232 of file tpl_dnode.H.
References Aleph::Dnode< T >::data.
Referenced by Aleph::DynDlist< T >::Iterator::del(), Aleph::random_search(), Aleph::DynDlist< T >::remove_first_ne(), and Aleph::DynDlist< T >::remove_last_ne().
Get the first node.
Definition at line 132 of file tpl_dnode.H.
References ah_underflow_error_if, Aleph::Dnode< T >::get_first_ne(), and Aleph::Dlink::is_empty().
Get the first node.
Definition at line 126 of file tpl_dnode.H.
References Aleph::Dnode< T >::get_next().
Referenced by Aleph::Dnode< T >::get_first().
Definition at line 244 of file tpl_dnode.H.
References Aleph::Dnode< T >::data.
|
inlinenoexcept |
Definition at line 241 of file tpl_dnode.H.
References Aleph::Dnode< T >::data.
Referenced by Aleph::GenLinearHashTable< Key, BucketType, Cmp >::insert(), and Aleph::GenLinearHashTable< Key, BucketType, Cmp >::search_or_insert().
Get the last node.
Definition at line 139 of file tpl_dnode.H.
References ah_underflow_error_if, Aleph::Dnode< T >::get_last_ne(), and Aleph::Dlink::is_empty().
Get the last node.
Definition at line 129 of file tpl_dnode.H.
References Aleph::Dnode< T >::get_prev().
Referenced by Aleph::Dnode< T >::get_last().
Return the next node to this
Definition at line 114 of file tpl_dnode.H.
References Aleph::Dlink::next.
Referenced by Aleph::Dnode< T >::get_first_ne(), and Aleph::DynDlist< T >::get_first_ne().
Return the previous node to this
Definition at line 117 of file tpl_dnode.H.
References Aleph::Dlink::prev.
Referenced by Aleph::Dnode< T >::get_last_ne(), and Aleph::DynDlist< T >::get_last_ne().
|
inline |
|
inline |
Remove the first node and return its address.
Definition at line 165 of file tpl_dnode.H.
References ah_underflow_error_if, Aleph::Dlink::is_empty(), and Aleph::Dnode< T >::remove_first_ne().
Remove the first node and return its address.
Definition at line 152 of file tpl_dnode.H.
References Aleph::Dlink::remove_next().
Referenced by Aleph::Dnode< T >::remove_first().
Remove the last node and return its address.
Definition at line 158 of file tpl_dnode.H.
References ah_underflow_error_if, Aleph::Dlink::is_empty(), and Aleph::Dnode< T >::remove_last_ne().
Remove the last node and return its address.
Definition at line 146 of file tpl_dnode.H.
References Aleph::Dlink::remove_prev().
Referenced by Aleph::Dnode< T >::remove_last().
Remove the next node to this; return its address.
Definition at line 123 of file tpl_dnode.H.
References Aleph::Dlink::remove_next().
Referenced by Aleph::DynDlist< T >::empty(), and Aleph::DynDlist< T >::remove_first_ne().
Remove the previous node to this; return its address.
Definition at line 120 of file tpl_dnode.H.
References Aleph::Dlink::remove_prev().
Referenced by Aleph::DynDlist< T >::remove_last_ne().
Swap this with p
Definition at line 192 of file tpl_dnode.H.
References Aleph::Dnode< T >::data, and Aleph::Dlink::swap().
|
private |
Definition at line 109 of file tpl_dnode.H.
Referenced by Aleph::Dnode< T >::data_to_node(), Aleph::DynDlist< T >::erase(), Aleph::Dnode< T >::get_data(), Aleph::Dnode< T >::get_data(), Aleph::Dnode< T >::get_key(), Aleph::Dnode< T >::get_key(), Aleph::Dnode< T >::operator=(), Aleph::Dnode< T >::operator=(), Aleph::DynDlist< T >::remove(), and Aleph::Dnode< T >::swap().