#include <AH/Containers/LinkedList.hpp>
A class for doubly linked lists.
| Node | The type of the nodes of the list. |
Definition at line 21 of file LinkedList.hpp.
Collaboration diagram for DoublyLinkedList< Node >:Classes | |
| class | node_iterator |
| Forward bidirectional doubly linked list iterator. More... | |
| class | node_iterator_base |
| Base class for doubly linked list iterators. More... | |
| class | reverse_node_iterator |
| Reverse bidirectional doubly linked list iterator. More... | |
Public Types | |
| using | iterator = node_iterator< Node > |
| using | const_iterator = node_iterator< const Node > |
| using | reverse_iterator = reverse_node_iterator< Node > |
| using | const_reverse_iterator = reverse_node_iterator< const Node > |
Public Member Functions | |
| void | append (Node *node) |
| Append a node to a linked list. More... | |
| void | append (Node &node) |
| Append a node to a linked list. More... | |
| void | insertBefore (Node *toBeInserted, Node *before) |
| Insert a node before another node. More... | |
| void | insertBefore (Node &toBeInserted, Node &before) |
| template<class Compare > | |
| void | insertSorted (Node *node, Compare cmp) |
| Insert a new node at the correct location into a sorted list. More... | |
| void | insertSorted (Node *node) |
Insert a new node at the correct location into a sorted list, using operator<. More... | |
| void | remove (Node *node) |
| Remove a node from the linked list. More... | |
| void | remove (Node &node) |
| Remove a node from the linked list. More... | |
| void | moveDown (Node *node) |
| Move down the given node in the linked list. More... | |
| void | moveDown (Node &node) |
| Move down the given node in the linked list. More... | |
| bool | couldContain (const Node *node) const |
| Check if the linked list could contain the given node. More... | |
| bool | couldContain (const Node &node) const |
| Check if the linked list could contain the given node. More... | |
| iterator | begin () |
| iterator | end () |
| const_iterator | begin () const |
| const_iterator | end () const |
| reverse_iterator | rbegin () |
| reverse_iterator | rend () |
| const_reverse_iterator | rbegin () const |
| const_reverse_iterator | rend () const |
| Node * | getFirst () const |
| Get a pointer to the first node. More... | |
| Node * | getLast () const |
| Get a pointer to the last node. More... | |
Private Attributes | |
| Node * | first = nullptr |
| Node * | last = nullptr |
| using iterator = node_iterator<Node> |
Definition at line 105 of file LinkedList.hpp.
| using const_iterator = node_iterator<const Node> |
Definition at line 106 of file LinkedList.hpp.
| using reverse_iterator = reverse_node_iterator<Node> |
Definition at line 107 of file LinkedList.hpp.
| using const_reverse_iterator = reverse_node_iterator<const Node> |
Definition at line 108 of file LinkedList.hpp.
|
inline |
Append a node to a linked list.
| node | A pointer to the node to be appended. |
Definition at line 116 of file LinkedList.hpp.
|
inline |
Append a node to a linked list.
| node | A reference to the node to be appended. |
Definition at line 132 of file LinkedList.hpp.
|
inline |
Insert a node before another node.
| toBeInserted | The new node to be inserted. |
| before | The node to insert the new node before. It must be in the list already. |
Definition at line 143 of file LinkedList.hpp.
|
inline |
Definition at line 154 of file LinkedList.hpp.
|
inline |
Insert a new node at the correct location into a sorted list.
| node | The new node to be inserted. |
| cmp | The function to order the nodes. |
| Compare | A functor that compares two Nodes and returns a boolean. |
Definition at line 169 of file LinkedList.hpp.
|
inline |
Insert a new node at the correct location into a sorted list, using operator<.
| node | The new node to be inserted. |
Definition at line 189 of file LinkedList.hpp.
|
inline |
Remove a node from the linked list.
| node | A pointer to the node to be removed. |
Definition at line 199 of file LinkedList.hpp.
|
inline |
Remove a node from the linked list.
| node | A reference to the node to be removed. |
Definition at line 218 of file LinkedList.hpp.
|
inline |
Move down the given node in the linked list.
For example: moving down node C:
| node | A pointer to the node to be moved down. |
Definition at line 231 of file LinkedList.hpp.
|
inline |
Move down the given node in the linked list.
For example: moving down node C:
| node | A reference to the node to be moved down. |
Definition at line 263 of file LinkedList.hpp.
|
inline |
Check if the linked list could contain the given node.
| true | The given node is part of some linked list or it is the first node of the given linked list. It could be that the node is part of a different linked list if it was ever added to a different list. However, if this function returns true and the node was never added to another linked list, it means that this linked list contains the given node. |
| false | The given node is not part of any linked list, or it is the only element of a different linked list. |
Definition at line 280 of file LinkedList.hpp.
|
inline |
Check if the linked list could contain the given node.
| true | The given node is part of some linked list or it is the first node of the given linked list. It could be that the node is part of a different linked list if it was ever added to a different list. However, if this function returns true and the node was never added to another linked list, it means that this linked list contains the given node. |
| false | The given node is not part of any linked list, or it is the only element of a different linked list. |
Definition at line 286 of file LinkedList.hpp.
|
inline |
Definition at line 288 of file LinkedList.hpp.
|
inline |
Definition at line 289 of file LinkedList.hpp.
|
inline |
Definition at line 291 of file LinkedList.hpp.
|
inline |
Definition at line 292 of file LinkedList.hpp.
|
inline |
Definition at line 294 of file LinkedList.hpp.
|
inline |
Definition at line 295 of file LinkedList.hpp.
|
inline |
Definition at line 297 of file LinkedList.hpp.
|
inline |
Definition at line 298 of file LinkedList.hpp.
|
inline |
Get a pointer to the first node.
Definition at line 301 of file LinkedList.hpp.
|
inline |
Get a pointer to the last node.
Definition at line 303 of file LinkedList.hpp.
|
private |
Definition at line 306 of file LinkedList.hpp.
|
private |
Definition at line 307 of file LinkedList.hpp.