#include <AH/Containers/LinkedList.hpp>
A class for doubly linked lists.
Node | The type of the nodes of the list. |
Definition at line 25 of file LinkedList.hpp.
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 109 of file LinkedList.hpp.
using const_iterator = node_iterator<const Node> |
Definition at line 110 of file LinkedList.hpp.
using reverse_iterator = reverse_node_iterator<Node> |
Definition at line 111 of file LinkedList.hpp.
using const_reverse_iterator = reverse_node_iterator<const Node> |
Definition at line 112 of file LinkedList.hpp.
|
inline |
Append a node to a linked list.
node | A pointer to the node to be appended. |
Definition at line 120 of file LinkedList.hpp.
|
inline |
Append a node to a linked list.
node | A reference to the node to be appended. |
Definition at line 136 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 147 of file LinkedList.hpp.
|
inline |
Definition at line 158 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 173 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 193 of file LinkedList.hpp.
|
inline |
Remove a node from the linked list.
node | A pointer to the node to be removed. |
Definition at line 203 of file LinkedList.hpp.
|
inline |
Remove a node from the linked list.
node | A reference to the node to be removed. |
Definition at line 222 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 235 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 267 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 284 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 290 of file LinkedList.hpp.
|
inline |
Definition at line 292 of file LinkedList.hpp.
|
inline |
Definition at line 293 of file LinkedList.hpp.
|
inline |
Definition at line 295 of file LinkedList.hpp.
|
inline |
Definition at line 296 of file LinkedList.hpp.
|
inline |
Definition at line 298 of file LinkedList.hpp.
|
inline |
Definition at line 299 of file LinkedList.hpp.
|
inline |
Definition at line 301 of file LinkedList.hpp.
|
inline |
Definition at line 302 of file LinkedList.hpp.
|
inline |
Get a pointer to the first node.
Definition at line 305 of file LinkedList.hpp.
|
inline |
Get a pointer to the last node.
Definition at line 307 of file LinkedList.hpp.
|
private |
Definition at line 310 of file LinkedList.hpp.
|
private |
Definition at line 311 of file LinkedList.hpp.