Referencia de la plantilla de la Clase Matrix_Graph
[Grafos.]

Matriz de adyacencia de un grafo extraída de un grafo representado con listas de adyacencia. Más...

Lista de todos los miembros.

Tipos públicos

typedef GT::Arc Arc
 El tipo de Graph_Arc que usado en el List_Graph.
typedef GT::Arc_Type Arc_Type
 El tipo de atributo que guardan los arcos del grafo representado con listas de adyacencia.
typedef GT List_Graph_Type
 El tipo de grafo representado con listas de adyacencia.
typedef GT::Node Node
 El tipo de Graph_Node que usado en el List_Graph.
typedef GT::Node_Type Node_Type
 El tipo de atributo que guardan los nodos del grafo representado con listas de adyacencia.

Métodos públicos

const size_t & get_num_nodes () const
 Retorna el número de nodos del grafo (que es la dimensión de la matriz).
 Matrix_Graph (Matrix_Graph &mat)
 Constructor copia.
 Matrix_Graph (GT &g, const Arc_Type &null)
 Constructor a partir de un grafo g representado con listas de adyacencia.
const Arc_Typenull_value () const
 El valor constante que representa la entrada nula en la matriz.
Arc_Typeoperator() (const long &i, const long &j)
 Retorna una referencia al atributo de arco contenido en la entrada (i,j) de la matriz de adyacencia.
Node_Typeoperator() (const long &i) const
 Retorna el atributo asociado al nodo cuyo índice es i.
const Arc_Typeoperator() (const long &i, const long &j) const
 Retorna una referencia al atributo de arco contenido en la entrada (i,j) de la matriz de adyacencia.
Matrix_Graphoperator= (GT &g)
 Asigna a una matriz un grafo representado con listas de adyacencia.
Matrix_Graphoperator= (Matrix_Graph &mat)
 Asigna a una matriz otra matriz.


Descripción detallada

template<typename GT>
class Aleph::Matrix_Graph< GT >

La clase Matrix_Graph modeliza una matriz de adyacencia que guarda los atributos contenidos en los nodos y arcos de un grafo que previamente fue representado con listas de adyacencia (derivación de la clase List_Graph).

Un objeto Matrix_Graph es una copia de un grafo representado con listas de adyacencia o de un objeto Map_Matrix_Graph (que está asociado a una representación con listas de adyacencia). A diferencia de Map_Matrix_Graph, Matrix_Graph es modificable en el sentido de que permite añadir nuevos arcos en el grafo por modificación de una entrada nula de la matriz.

Cuando se construye un objeto Matrix_Graph, se debe especificar un valor constante que representa a la entrada nula; es decir, a la ausencia de arco.

Es esperado que el consumo de memoria por los arcos sea proporcional a su cantidad.

Nota:
Puesto que la matriz guarda los atributos asociados a los nodos y arcos, Matrix_Graph no sirve para guardar atributos derivados hermanos de las clases Graph_Node o Graph_Arc.
Ver también:
Map_Matrix_Graph Ady_Mat

Definición en la línea 413 del archivo tpl_matgraph.H.


Documentación del constructor y destructor

Matrix_Graph ( GT &  g,
const Arc_Type null 
) [inline]

Este constructor recibe un grafo basado en List_Graph g y un valor de tipo GT::Arc::Arc_Type correspondiente al valor que será considerado como entrada nula. Para cada nodo p del grafo, de tipo GT::Node, se copia su atributo interno obtenido mediante p->get_info(). De igual manera se hace para los arcos.

Parámetros:
[in] g el grafo representado con listas de adyacencia partir del cual se copiará la matriz.
[in] null el valor que será considerado como entrada nula de la matriz y que indicará ausencia de arco.
Excepciones:
bad_alloc si no hay suficiente memoria para construir la matriz.

Definición en la línea 529 del archivo tpl_matgraph.H.

Matrix_Graph ( Matrix_Graph< GT > &  mat  )  [inline]

Construye una matriz a partir de otra matriz.

Parámetros:
[in] mat la matriz a ser copiada.
Excepciones:
bad_alloc si no hay suficiente memoria para construir la matriz.

Definición en la línea 541 del archivo tpl_matgraph.H.


Documentación de las funciones miembro

Arc_Type& operator() ( const long &  i,
const long &  j 
) [inline]

El operador (i,j) lee la entrada de la matriz correspondiente y retorna el atributo del arco. Si no existe el arco, entonces se retorna el valor Matrix_Graph::null_value().

Este modo de acceso es constante.

Parámetros:
[in] i índice del nodo origen.
[in] j índice del nodo destino.
Excepciones:
out_of_range si i o j es mayor o igual a la cantidad de nodos del grafo.
Devuelve:
referencia al atributo del arco; recuérdese que Matrix_Graph::null_value() indica ausencia de arco.

Definición en la línea 641 del archivo tpl_matgraph.H.

Node_Type& operator() ( const long &  i  )  const [inline]

El operador (i) con i entero retorna el valor de atributo asociado al nodo cuyo índice es i.

Parámetros:
[in] i índice de la matriz.
Devuelve:
una referencia al atributo del nodo.
Excepciones:
out_of_range si i es mayor o igual a la cantidad de nodos.

Definición en la línea 617 del archivo tpl_matgraph.H.

Hace referencia a DynArray::access().

const Arc_Type& operator() ( const long &  i,
const long &  j 
) const [inline]

El operador (i,j) lee la entrada de la matriz correspondiente y retorna el atributo del arco. Si no existe el arco, entonces se retorna el valor Matrix_Graph::null_value().

Este modo de acceso es constante.

Parámetros:
[in] i índice del nodo origen.
[in] j índice del nodo destino.
Excepciones:
out_of_range si i o j es mayor o igual a la cantidad de nodos del grafo.
Devuelve:
referencia al atributo del arco; recuérdese que Matrix_Graph::null_value() indica ausencia de arco.

Definición en la línea 599 del archivo tpl_matgraph.H.

Matrix_Graph& operator= ( GT &  g  )  [inline]

Borra todo el estado de this y luego copia el grafo representado con listas de adyacencia g.

Parámetros:
[in] g el grafo representado con listas de adyacencia a ser copiado.
Excepciones:
bad_alloc si no hay suficiente memoria para construir la matriz.
Nota:
El tipo GT debe corresponderse exactamente con el tipo List_Graph asociado a la matriz; de lo contrario ocurrirá un error de compilación.

Definición en la línea 577 del archivo tpl_matgraph.H.

Matrix_Graph& operator= ( Matrix_Graph< GT > &  mat  )  [inline]

Borra todo el estado de this y luego copia el grafo representado con la matriz de adyacencia mat.

Parámetros:
[in] mat la matriz a ser copiada.
Excepciones:
bad_alloc si no hay suficiente memoria para construir la matriz.
Nota:
Los tipos de grafos List_Graph usados para construir this y mat deben corresponderse exactamente; de lo contrario ocurrirá un error de compilación.

Definición en la línea 557 del archivo tpl_matgraph.H.


La documentación para esta clase fue generada a partir del siguiente fichero:

Leandro R. León