Aleph-w  1.9
General library for algorithms and data structures
Aleph::Graph_Snode< Node_Info > Struct Template Reference

#include <tpl_sgraph.H>

+ Inheritance diagram for Aleph::Graph_Snode< Node_Info >:
+ Collaboration diagram for Aleph::Graph_Snode< Node_Info >:

Public Types

using Base = GTNodeCommon< Node_Info >
 
using Item_Type = Node_Info
 
using Node = GTNodeCommon
 Common alias for set types.
 
using Node_Type = Node_Info
 The node.
 

Public Member Functions

 Graph_Snode (const Node_Info &info) noexcept(std::is_nothrow_copy_constructible< Node_Info >::value)
 
 Graph_Snode (Node_Info &&info=Node_Info()) noexcept(std::is_nothrow_move_constructible< Node_Info >::value)
 
 Graph_Snode (const Graph_Snode &node) noexcept(std::is_nothrow_copy_constructible< Node_Info >::value)
 
Graph_Snodeoperator= (const Graph_Snode &node) noexcept(std::is_nothrow_copy_assignable< Node_Info >::value)
 
 Graph_Snode (Graph_Snode *node) noexcept(std::is_nothrow_copy_assignable< Node_Info >::value)
 
Node_Info & get_info () noexcept
 Return a modifiable reference to the data contained in the node.
 
const Node_Info & get_info () const noexcept
 Return a constant reference to the data contained in the node.
 
unsigned int state () const noexcept
 Return the state's value.
 
void set_state (unsigned int s) noexcept
 Set the state to value s
 

Public Attributes

DynList< void * > arc_list
 
Graph_Attr attrs
 
Node_Info node_info
 
size_t num_arcs
 data associated to the node. Access it with get_info() More...
 

Friends

class GTNodeCommon< Node_Info >
 

Detailed Description

template<typename Node_Info = Empty_Class>
struct Aleph::Graph_Snode< Node_Info >

Nodo de grafo implantado con listas simples de adyacencia.

Esta clase define un nodo o vértice de un grafo o digrafo implantado mediante listas de adyacencia.

Básicamente, hay tres maneras de definir la información que pertenece a un nodo de un grafo:

  • Mediante el parámetro tipo inherente al nodo denominado Node_Info.
  • A través de herencia de esta clase base. Esta es la manera de mantener diferentes tipos de nodo en un grafo.
  • Combinación de las dos anteriores.
Parameters
Node_InfoTipo 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 nodos 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::Node y sus métodos asociados.

Un nodo de grafo tiene tres atributos adicionales presentes por cada nodo y denominados del siguiente modo:

  • Bits de control (Bit_Fields): conjunto de bits usados por los algoritmos para marcar el nodo.
  • 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 nodo.
See also
List_Graph List_Digraph Graph_Arc Bit_Fields

Constructor & Destructor Documentation

◆ Graph_Snode() [1/2]

template<typename Node_Info = Empty_Class>
Aleph::Graph_Snode< Node_Info >::Graph_Snode ( const Node_Info &  info)
inlinenoexcept

Constructor que asigna un valor de atributo.

Crea un nodo y le asigna el valor info como valor de la información contenida en el nodo.

Los valores de los bits de control y del contador son colocados en cero. El cookie es colocado en nullptr.

Parameters
[in]infoel valor de información que se desea asignar al nodo recién creado.
Note
Debe estar definido el constructor copia de la clase Node_Info.

◆ Graph_Snode() [2/2]

template<typename Node_Info = Empty_Class>
Aleph::Graph_Snode< Node_Info >::Graph_Snode ( Graph_Snode< Node_Info > *  node)
inlinenoexcept

Constructor copia a partir de un puntero a nodo.

Crea un nodo y le asigna el valor node->get_info() como valor de la información contenida en el nodo.

Los valores de los bits de control y del contador son colocados en cero. El cookie es colocado en nullptr.

Parameters
[in]nodepuntero al nodo desde el cual se desea copiar el valor de información que se desea asignar al nodo recién creado.
Note
Debe estar definido el constructor copia de la clase Node_Info.
La instancia creada es un nodo distinto de node.

Member Data Documentation

◆ attrs

Graph_Attr GTNodeCommon< Node_Info >::attrs
inherited

Attributes of node

See also
Graph_Attr

◆ num_arcs

size_t GTNodeCommon< Node_Info >::num_arcs
inherited

data associated to the node. Access it with get_info()

Number of arcs.

If the graph is directed, then this field does not have much sense, since it counts the total of arcs (incoming and outcoming).

Warning
Don't modifiy this field (NEVER!). It is public in order to facilitate the implementation of some graph operations.

The documentation for this struct was generated from the following file:

Leandro Rabindranath León