Follow the hyperlinked names below for documentation on the individual concepts.
Concept | |
---|---|
Graph |
Basic graph concept |
Out_edge_graph |
Graph supporting outgoing edge queries |
In_edge_graph |
Graph supporting incoming edge queries |
Bi_edge_graph |
Graph supporting bidirectional edge queries |
Follow the hyperlinked names below for documentation on the individual data structures.
Data Structure | Implements | Insertion | Removal |
---|---|---|---|
Edge_list |
Graph |
✓ | ✓ |
Out_adjacency_list |
Out_edge_graph |
✓ | ✓ |
In_adjacency_list |
In_edge_graph |
✓ | ✓ |
Bi_adjacency_list |
Bi_edge_graph |
✓ | ✓ |
Stable_edge_list |
Graph |
✓ | |
Stable_out_adjacency_list |
Out_edge_graph |
✓ | |
Stable_in_adjacency_list |
In_edge_graph |
✓ | |
Stable_bi_adjacency_list |
Bi_edge_graph |
✓ | |
Atomic_edge_list |
Graph |
atomic | |
Atomic_out_adjacency_list |
Out_edge_graph |
atomic | |
Atomic_in_adjacency_list |
In_edge_graph |
atomic |
Note that the data structures that do not support removal are generally prefixed with Stable_
to indicate that their vertices and edges are never invalidated. To enable application to parallel domains, lock-free Atomic_
graphs are also available.
To see the library in action, head over to the tutorial.