|
|
| Graph_Sarc (const Arc_Info &info) noexcept(std::is_nothrow_copy_constructible< Arc_Info >::value) |
| |
|
| Graph_Sarc (Arc_Info &&info=Arc_Info()) noexcept(std::is_nothrow_move_constructible< Arc_Info >::value) |
| |
|
| Graph_Sarc (const Graph_Sarc &arc) noexcept(std::is_nothrow_copy_constructible< Arc_Info >::value) |
| |
|
Graph_Sarc & | operator= (const Graph_Sarc &arc) noexcept(std::is_nothrow_copy_assignable< Arc_Info >::value) |
| |
|
| Graph_Sarc (void *src, void *tgt, const Arc_Info &data) noexcept(std::is_nothrow_copy_constructible< Arc_Info >::value) |
| |
|
| Graph_Sarc (void *src, void *tgt, Arc_Info &&data) noexcept(std::is_nothrow_move_constructible< Arc_Info >::value) |
| |
|
unsigned int | state () const noexcept |
| | Return the state of arc.
|
| |
|
void | set_state (unsigned int s) noexcept |
| | Set the state of arc to value s
|
| |
|
Arc_Info & | get_info () noexcept |
| | Return a modifiable reference to the arc data.
|
| |
|
const Arc_Info & | get_info () const noexcept |
| | Return a constant reference to the arc data.
|
| |
|
void * | get_connected_node (void *node) noexcept |
| |
|
void * | get_img_node (void *node) noexcept |
| |
template<typename Arc_Info = Empty_Class>
class Aleph::Graph_Sarc< Arc_Info >
Arco de grafo implantado con listas simples de adyacencia.
Esta clase define un arco o eje de un grafo o digrafo implantado mediante listas de adyacencia simplemente enlzadas.
Básicamente, hay tres maneras de definir la información que pertenece a un arco de un grafo:
- Mediante el parámetro tipo inherente al nodo denominado
Arc_Info.
- A través de herencia de esta clase base. Esta es la manera de mantener diferentes tipos de arcos en un grafo.
- Combinación de las dos anteriores.
- Parameters
-
| Arc_Info | Tipo de dato guardado en el grafo y accesible mediante el método get_info(). |
- Note
- Esta clase sólo está destinada a la definición de arcos de un grafo. No está destinada a ser usada por el usuario. Es preferible usarla a través de los métodos provistos por
List_Graph. Si bien es posible usar algunos métodos o acceder algunos de sus atributos, es altamente recomendable no usarla. En su lugar, se debe utilizar el tipo List_Graph::Arc y sus métodos asociados.
Un arco de grafo tiene tres atributos adicionales presentes por cada arco y denominados del siguiente modo:
- Bits de control (
Bit_Fields): conjunto de bits usados por los algoritmos para marcar el arco.
- Contador (
counter): contador generalmente usado para marcar un orden de visita o procesamiento.
cookie: puntero opaco hacia cualquier otra información temporal que se desee asociar al arco.
- See also
- List_Graph List_Digraph Graph_Node Bit_Fields