Tipos públicos | |
typedef __Graph_Arc | Arc |
Tipo de arco. | |
typedef Arc::Arc_Type | Arc_Type |
Tipo de dato contenido en arco. | |
typedef __Graph_Node | Node |
Tipo de nodo. | |
typedef Node::Node_Type | Node_Type |
Tipo de dato contenido en nodo. | |
Métodos públicos | |
bool | arc_belong_to_graph (Arc *arc) |
Retorna true si el arco apuntado por arc está inserto dentro del grafo. | |
void | clear_graph () |
Limpia todo el grafo (todos sus nodos y arcos son eliminados y la memoria es liberada). | |
void | copy_graph (List_Graph &src_graph, const bool cookie_map=false) |
Copia explícita de grafos. | |
Node * | get_connected_node (Arc *arc, Node *node) |
Retorna el nodo conectado a node mediante el arco arc . | |
Bit_Fields & | get_control_bits (Node *node) |
Retorna los bits de control de un nodo. | |
void *& | get_cookie (Arc *arc) |
Obtiene el cookie de un arco. | |
void *& | get_cookie (Node *node) |
Obtiene el cookie de un nodo. | |
long & | get_counter (Arc *arc) |
Accede a contador de arco. | |
long & | get_counter (Node *node) |
Accede a contador de nodo. | |
Arc * | get_first_arc () |
Retorna el primer arco del grafo. | |
Node * | get_first_node () |
Retorna el primer nodo del grafo. | |
const size_t & | get_num_arcs (Node *node) const |
Retorna la cantidad total de arcos que tiene un nodo. | |
const size_t & | get_num_arcs () const |
Retorna la cantidad total de arcos que tiene el grafo. | |
const size_t & | get_num_nodes () const |
Retorna el número de nodos que tiene el grafo. | |
Node * | get_src_node (Arc *arc) |
Retorna el nodo origen de arc. | |
Node * | get_tgt_node (Arc *arc) |
Retorna el nodo destino de arc. | |
Arc * | insert_arc (Node *src_node, Node *tgt_node, const typename Arc::Arc_Type &arc_info) |
Crea un nuevo arco entre dos nodos. | |
Node * | insert_node (const Node_Type &node_info) |
Crea un nuevo nodo en un grafo. | |
Node * | insert_node (Node *node) |
Inserción de un nodo cuya memoria ya ha sido apartada. | |
bool | is_digraph () const |
Retorna true si this es un digrafo. | |
List_Graph (List_Digraph< Node, Arc > &g) | |
Constructor copia de un digrafo. | |
List_Graph (const List_Graph &g) | |
Constructor copia de un grafo. | |
bool | node_belong_to_arc (Arc *arc, Node *node) const |
Retorna true si el nodo node está conectado por el arco arc . | |
bool | node_belong_to_graph (Node *node) |
Retorna true si el nodo apuntado por node está inserto dentro del grafo. | |
template<class Operation> | |
void | operate_on_arcs (Node *node, void *ptr) |
Actuador sobre todos los arcos de un nodo con parámetro adicional. | |
template<class Operation> | |
void | operate_on_arcs (Node *node) |
Actuador sobre todos los arcos de un grafo. | |
template<class Operation> | |
void | operate_on_arcs (void *ptr) |
Actuador sobre todos los arcos de un grafo con parámetro adicional. | |
template<class Operation> | |
void | operate_on_arcs () |
Actuador sobre todos los arcos de un grafo. | |
template<class Operation> | |
void | operate_on_nodes (void *ptr) |
Actuador sobre todos los nodos de un grafo. | |
template<class Operation> | |
void | operate_on_nodes () |
Actuador sobre todos los nodos de un grafo. | |
List_Graph & | operator= (List_Digraph< Node, Arc > &g) |
Asignación digrafo a un grafo. | |
List_Graph & | operator= (List_Graph &g) |
Asignación de grafo. | |
void | remove_arc (Arc *arc) |
Elimina el arco arc. | |
void | remove_node (Node *node) |
Elimina un nodo junto con todos sus arcos. | |
void | reset_arc (Arc *arc) |
Reinicia un arco (bits de control, contador y cookie). | |
void | reset_arcs () |
Reinicia todos los arcos de un grafo (bits de control, contador y cookie). | |
void | reset_bit (Arc *arc, const int &bit) |
Reinicia a cero un bit de control de un arco. | |
void | reset_bit (Node *node, const int &bit) |
Reinicia a cero un bit de control de un nodo. | |
void | reset_bit_arcs (const int &bit) |
Reinicia en cero un bit en todos los arcos de un grafo. | |
void | reset_bit_nodes (const int &bit) |
Reinicia en cero un bit en todos los nodos de un grafo. | |
void | reset_cookie_arcs () |
Reinicia todos el cookie a NULL en todos los arcos del grafo. | |
void | reset_cookie_nodes () |
Reinicia todos el cookie a NULL en todos los nodos del grafo. | |
void | reset_counter (Arc *arc) |
Reinicia en cero el contador de arco. | |
void | reset_counter (Node *node) |
Reinicia en cero el contador de nodo. | |
void | reset_counter_arcs () |
Reinicia en cero todos los contadores de los arcos. | |
void | reset_counter_nodes () |
Reinicia en cero todos los contadores de los nodos. | |
void | reset_node (Node *node) |
Reinicia un nodo (bits de control, contador y cookie). | |
void | reset_nodes () |
Reinicia todos los nodos de un grafo (bits de control, contador y cookie). | |
template<class Equal> | |
Arc * | search_arc (void *ptr) |
Búsqueda de nodo con criterio de igualdad y parámetro adicional. | |
Arc * | search_arc (const Arc_Type &arc_info) |
Búsqueda de arco con información arc_info. | |
template<class Equal> | |
Arc * | search_arc (const Arc_Type &arc_info) |
Búsqueda de arco con criterio de igualdad. | |
template<class Equal> | |
Node * | search_node (void *ptr) |
Búsqueda de nodo con criterio de igualdad y parámetro adicional. | |
Node * | search_node (const Node_Type &node_info) |
Búsqueda de nodo con información node_info. | |
template<class Equal> | |
Node * | search_node (const Node_Type &node_info) |
Búsqueda de nodo con criterio de igualdad. | |
void | set_bit (Arc *arc, const int &bit, const int &value) |
Escribe un valor de bit sobre un arco. | |
void | set_bit (Node *node, const int &bit, const int &value) |
Escribe un valor de bit sobre un nodo. | |
template<class Compare> | |
void | sort_arcs () |
Ordena los arcos de un grafo. | |
virtual | ~List_Graph () |
destruye enteramente el grafo (nodos y arcos se eliminan y la memoria se libera. | |
Métodos públicos estáticos | |
static void | map_arcs (Arc *p, Arc *q) |
Mapea dos arcos mediante sus cookies. | |
static void | map_nodes (Node *p, Node *q) |
Mapea dos nodos mediante sus cookies. | |
Clases | |
class | Arc_Iterator |
Iterador sobre arcos de un grafo. Más... | |
class | Node_Arc_Iterator |
Iterador de arcos de un nodo de grafo. Más... | |
class | Node_Iterator |
Iterador de nodos de un grafo. Más... |
La clase maneja dos parámetros tipo fundamentales:
Estas clases deben haberse definido previamente.
Una vez instanciado un List_Graph<Node, Arc>, los nodos y arcos deben accederse mediante los tipos internos:
__Graph_Node | El tipo de nodo. Debe estar definido a partir de la clase __Graph_Node , bien sea por inclusión de atributos, por derivación o por combinación de ambos | |
__Graph_Arc | El tipo de arco. Debe estar definido a partir de la clase __Graph_Arc , bien sea por inclusión de atributos, por derivación o por combinación de ambos |
Definición en la línea 1138 del archivo tpl_graph.H.
List_Graph | ( | const List_Graph< __Graph_Node, __Graph_Arc > & | g | ) | [inline] |
Instancia un nuevo grafo copia de g. Toda la estructura es copiada con contenidos tanto en los nodos como en los arcos.
[in] | g | grafo a copiar |
bad_alloc | si no hay suficiente memoria para la copia. |
Definición en la línea 2514 del archivo tpl_graph.H.
Hace referencia a List_Graph::copy_graph().
List_Graph | ( | List_Digraph< Node, Arc > & | g | ) | [inline] |
Instancia un nuevo grafo copia de un grafo g. Toda la estructura es copiada con contenidos tanto en los nodos como en los arcos. Los arcos dirigidos son convertidos a arcos bidireccionales.
[in] | g | digrafo a copiar |
bad_alloc | si no hay suficiente memoria para la copia. |
void copy_graph | ( | List_Graph< __Graph_Node, __Graph_Arc > & | src_graph, | |
const bool | cookie_map = false | |||
) | [inline] |
La rutina primero limpia el grafo this (se eliminan sus nodos arcos y se libera toda la memoria); luego copia enteramente el grafo (o digrafo) g a this. Si el valor lógico cookie_map es cierto, entonces la copia es mapeada; es decir, todos los cookies de los nodos y arcos de ambos grafos quedan mapeados entre sí.
[in] | src_graph | grafo o digrafo a ser copiado. |
[in] | cookie_map | si el valor es true, entonces la copia es mapeada. Por omisión no se realiza copia mapeada. |
bad_alloc | si no hay suficiente memoria para la copia. |
Definición en la línea 2441 del archivo tpl_graph.H.
Hace referencia a List_Graph::clear_graph(), List_Graph::get_num_arcs(), List_Graph::get_num_nodes(), List_Graph::get_src_node(), List_Graph::get_tgt_node(), DynMapTree::insert(), List_Graph::insert_arc(), List_Graph::insert_node(), List_Graph::is_digraph(), List_Graph::map_arcs(), y List_Graph::map_nodes().
Referenciado por List_Graph::List_Graph(), y List_Graph::operator=().
Esta es la primitiva a utilizar cuando se accede a un arco de un grafo (no digrafo) y se desea discernir un extremo del arco dado el otro nodo extremo.
[in] | arc | arco del grafo |
[in] | node | nodo conectado al arco |
node
a través del arco arc
node
esté conectado a arc
Definición en la línea 2198 del archivo tpl_graph.H.
Bit_Fields & get_control_bits | ( | Node * | node | ) | [inline] |
[in] | node | puntero a nodo al cual se desea leer los bits de control. |
Definición en la línea 2569 del archivo tpl_graph.H.
void *& get_cookie | ( | Arc * | arc | ) | [inline] |
[in] | arc | puntero al arco al cual se desea obtener el cookie. |
Definición en la línea 2640 del archivo tpl_graph.H.
void *& get_cookie | ( | Node * | node | ) | [inline] |
[in] | node | puntero al nodo al cual se desea obtener el cookie. |
Definición en la línea 2595 del archivo tpl_graph.H.
long & get_counter | ( | Arc * | arc | ) | [inline] |
[in] | arc | puntero a arco al cual se desea acceder al contador. |
Definición en la línea 2628 del archivo tpl_graph.H.
long & get_counter | ( | Node * | node | ) | [inline] |
[in] | node | puntero a nodo al cual se desea acceder al contador. |
Definición en la línea 2583 del archivo tpl_graph.H.
Arc * get_first_arc | ( | ) | [inline] |
Esta rutina debe considerarse como un punto de entrada al grafo independientemente del valor del arc. Por lo general, no es recomendable asumir cuál será el nodo retornado por esta rutina. Sin embargo, a la excepción de su equivalente para nodos, los arcos pueden ordenarse según algún criterio específico de comparación (pesos por ejemplo). Consecuentemente, en caso de ordenamiento, el primer arco a retornar será el menor (o mayor) según el criterio de ordenamiento.
Reimplementado en Concurrent_Graph, y Concurrent_Graph< __Node, __Arc >.
Definición en la línea 2018 del archivo tpl_graph.H.
Hace referencia a Dlink::get_next(), y List_Graph::get_num_arcs().
Node * get_first_node | ( | ) | [inline] |
Esta rutina debe considerarse como un punto de entrada al grafo independientemente del valor del nodo. No debe asumirse ninguna consideración acerca cuál será el nodo retornado por esta rutina.
Reimplementado en Concurrent_Graph, y Concurrent_Graph< __Node, __Arc >.
Definición en la línea 2008 del archivo tpl_graph.H.
Hace referencia a Dlink::get_next().
const size_t & get_num_arcs | ( | Node * | node | ) | const [inline] |
[in] | node | nodo sobre el cual se desea conocer el número de arcos. |
Definición en la línea 2557 del archivo tpl_graph.H.
[in] | arc | puntero al arco sobre el cual se desea consultar el nodo origen. |
Definición en la línea 2182 del archivo tpl_graph.H.
Referenciado por List_Graph::copy_graph(), y List_Graph::remove_arc().
[in] | arc | puntero al arco sobre el cual se desea consultar el nodo destino. |
Definición en la línea 2187 del archivo tpl_graph.H.
Referenciado por List_Graph::copy_graph(), y List_Graph::remove_arc().
Arc * insert_arc | ( | Node * | src_node, | |
Node * | tgt_node, | |||
const typename Arc::Arc_Type & | arc_info | |||
) | [inline] |
Este método aparta memoria para un nuevo arco entre los nodos previamente definidos, src_node
y tgt_node
con valor de contenido en el arco arc_info.
Los nodos deben haber sido previamente insertados en el grafo. A este respecto, no se hace ninguna verificación. El operador de asignación de la clase Arc::Arc_Type debe haber sido definido.
No se realiza ninguna verificación de existencia previa de un arco entre los nodos involucrados (esto es necesario para operar con multigrafos).
[in] | src_node | puntero al nodo origen. |
[in] | tgt_node | puntero al nodo destino. |
[in] | arc_info | valor de información a ser copiado en el arco. |
bad_alloc | si no hay memoria para el arco. |
Definición en la línea 2298 del archivo tpl_graph.H.
Hace referencia a Dlink::append().
Referenciado por List_Graph::copy_graph().
Este método aparta memoria para un nodo de tipo List_Graph::Node
y le asigna como atributo el valor node_info
.
[in] | node_info | Información que se desea copiar en el nodo. Es imperativo que exista el constructor copia Node_Info. |
bad_alloc | si no hay memoria para el nuevo. |
Reimplementado en Concurrent_Graph.
Este método asume un nodo de tipo List_Graph::Node
apuntado por el parámetro node
y lo inserta en el grafo.
[in] | node | puntero a un nodo ya creado que no pertenece a ningún grafo. |
delete
, node
debe haber sido imperativamente apartado con new
. Por lo general, esta rutina no debe usarse. En su lugar debe utilizarse la otra inserción (que aparta memoria automáticamente.
Reimplementado en Concurrent_Graph, y Concurrent_Graph< __Node, __Arc >.
Definición en la línea 2284 del archivo tpl_graph.H.
Hace referencia a Dlink::append().
Referenciado por List_Graph::copy_graph().
Dados dos punteros a arcos, por lo general de instancias distintas de grafos, esta función realiza un mapeo mediante los punteros cookies. Luego del mapeo, el cookie de un arco apunta al otro y viceversa.
Si el valor del cookie de p es distintos de NULL, entonces la primitiva asume que p ya está mapeado a otro arco y la primitiva continua el mapeo como una composición.
Por lo general, el mapeo se utiliza por algoritmos que requieren copiar grafos o subgrafos. Mediante el mapeo, se puede tener una imagen del grafo original en el subgrafo y viceversa.
p | puntero a arco a ser mapeado. | |
q | puntero a arco a ser mapeado. |
Definición en la línea 2425 del archivo tpl_graph.H.
Hace referencia a ARC_COOKIE.
Referenciado por List_Graph::copy_graph().
Dados dos punteros a nodos, por lo general de instancias distintas de grafos, esta función realiza un mapeo mediante los punteros cookies. Luego del mapeo, el cookie de un nodo apunta al otro y viceversa.
Si el valor del cookie de p es distintos de NULL, entonces la primitiva asume que p ya está mapeado a otro nodo y la primitiva continua el mapeo como una composición.
Por lo general, el mapeo se utiliza por algoritmos que requieren copiar grafos o subgrafos. Mediante el mapeo, se puede tener una imagen del grafo original en el subgrafo y viceversa.
p | puntero a nodo a ser mapeado. | |
q | puntero a nodo a ser mapeado. |
Definición en la línea 2408 del archivo tpl_graph.H.
Hace referencia a NODE_COOKIE.
Referenciado por List_Graph::copy_graph().
[in] | arc | puntero a arco |
[in] | node | puntero a nodo |
node
está conectado por arc
; false de lo contrario. Definición en la línea 2192 del archivo tpl_graph.H.
void operate_on_arcs | ( | Node * | node, | |
void * | ptr | |||
) | [inline] |
Esta rutina recorre cada arco de un nodo de grafo y sobre él ejecuta la operación Operation()
(this
, arco_actual
, ptr
).
Este es el actuador de escogencia en caso de que la operación requiera otra información que no pueda obtenerse del grafo o del arco.
node | nodo sobre el cual se recorrerán sus arcos. | |
ptr | puntero opaco por el cual se puede pasar cualquier otra información a la operación. |
Definición en la línea 1594 del archivo tpl_graph.H.
void operate_on_arcs | ( | Node * | node | ) | [inline] |
Esta rutina recorre cada arco de un nodo y sobre el ejecuta la operación Operation()
(this
, arco_actual
).
[in] | node | nodo sobre el cual se recorrerán sus arcos. |
Definición en la línea 1575 del archivo tpl_graph.H.
void operate_on_arcs | ( | void * | ptr | ) | [inline] |
Esta rutina recorre cada arco del grafo y sobre el ejecuta la operación Operation()
(this
, arco_actual
, ptr
).
Este es el actuador de escogencia en caso de que la operación requiera otra información que no pueda obtenerse del grafo o del arco.
[in] | ptr | puntero opaco por el cual se puede pasar cualquier otra información a la operación. |
Reimplementado en Concurrent_Graph, y Concurrent_Graph< __Node, __Arc >.
Definición en la línea 1562 del archivo tpl_graph.H.
void operate_on_arcs | ( | ) | [inline] |
Esta rutina recorre cada arco del grafo y sobre el ejecuta la operación Operation()
(this
, arco_actual
).
Reimplementado en Concurrent_Graph, y Concurrent_Graph< __Node, __Arc >.
Definición en la línea 1544 del archivo tpl_graph.H.
void operate_on_nodes | ( | void * | ptr | ) | [inline] |
Esta rutina recorre cada nodo del grafo y sobre el ejecuta la operación Operation()
(this
, nodo_actual
, ptr
).
Este es el actuador de escogencia en caso de que la operación requiera otra información que no pueda obtenerse del grafo o del nodo.
ptr | puntero opaco por el cual se puede pasar o recibir cualquier otra información a la operación. |
Reimplementado en Concurrent_Graph, y Concurrent_Graph< __Node, __Arc >.
Definición en la línea 1360 del archivo tpl_graph.H.
void operate_on_nodes | ( | ) | [inline] |
Esta rutina recorre cada nodo del grafo y sobre el ejecuta la operación Operation()
(this
, nodo_actual
).
Reimplementado en Concurrent_Graph, y Concurrent_Graph< __Node, __Arc >.
Definición en la línea 1342 del archivo tpl_graph.H.
List_Graph& operator= | ( | List_Digraph< Node, Arc > & | g | ) | [inline] |
Limpia todos el grafo this (sus nodos y arcos son eliminados y la memoria es liberada); luego copia enteramente el digrafo g a this. Toda la estructura es copiada con contenidos tanto en los nodos como en los arcos. Los arcos dirigidos son convertidos a arcos bidireccionales.
g | el digrafo a asignar |
bad_alloc | si no hay suficiente memoria para la copia. |
Reimplementado en List_Digraph.
List_Graph< Node, Arc > & operator= | ( | List_Graph< __Graph_Node, __Graph_Arc > & | g | ) | [inline] |
Limpia todos el grafo this (sus nodos y arcos son eliminados y la memoria es liberada); luego copia enteramente el grafo g a this.
[in] | g | el grafo a asignar |
bad_alloc | si no hay suficiente memoria para la copia. |
Definición en la línea 2529 del archivo tpl_graph.H.
Hace referencia a List_Graph::copy_graph().
void remove_arc | ( | Arc * | arc | ) | [inline] |
La operación elimina del grafo el arco arc
y luego libera su memoria.
El arco debe pertenecer al grafo y no se realiza ninguna verificación al respecto.
[in] | arc | puntero al arco a eliminar |
Reimplementado en Concurrent_Graph, y Concurrent_Graph< __Node, __Arc >.
Definición en la línea 2345 del archivo tpl_graph.H.
Hace referencia a List_Graph::get_src_node(), y List_Graph::get_tgt_node().
Referenciado por List_Graph::remove_node().
void remove_node | ( | Node * | node | ) | [inline] |
Esta rutina elimina todos los arcos del nodo node
y luego elimina el mismo nodo. Toda la memoria ocupada por los arcos y el nodo es liberada.
[in] | node | nodo a ser eliminado. |
Reimplementado en Concurrent_Graph, y Concurrent_Graph< __Node, __Arc >.
Definición en la línea 2372 del archivo tpl_graph.H.
Hace referencia a List_Graph::remove_arc().
Referenciado por List_Graph::clear_graph().
void reset_arc | ( | Arc * | arc | ) | [inline] |
[in] | arc | puntero a arco a ser reiniciado. |
Definición en la línea 2646 del archivo tpl_graph.H.
void reset_bit | ( | Arc * | arc, | |
const int & | bit | |||
) | [inline] |
[in] | arc | puntero del nodo cuyo bit se desea reiniciar. |
[in] | bit | valor del bit a reiniciar. |
Definición en la línea 2608 del archivo tpl_graph.H.
void reset_bit | ( | Node * | node, | |
const int & | bit | |||
) | [inline] |
[in] | node | puntero del nodo cuyo bit se desea reiniciar. |
[in] | bit | valor del bit a reiniciar. |
Definición en la línea 2563 del archivo tpl_graph.H.
Referenciado por List_Graph< Node_Info, Arc_Info >::reset_bit_arcs(), y List_Graph< Node_Info, Arc_Info >::reset_bit_nodes().
void reset_bit_arcs | ( | const int & | bit | ) | [inline] |
[in] | bit | número de bit a reiniciar. |
Definición en la línea 1647 del archivo tpl_graph.H.
void reset_bit_nodes | ( | const int & | bit | ) | [inline] |
[in] | bit | número de bit a reiniciar. |
Definición en la línea 1638 del archivo tpl_graph.H.
void reset_counter | ( | Arc * | arc | ) | [inline] |
[in] | arc | puntero a arco al cual se desea acceder al contador. |
Definición en la línea 2634 del archivo tpl_graph.H.
void reset_counter | ( | Node * | node | ) | [inline] |
[in] | node | puntero a nodo al cual se desea acceder al contador. |
Definición en la línea 2589 del archivo tpl_graph.H.
Referenciado por List_Graph< Node_Info, Arc_Info >::reset_counter_arcs(), y List_Graph< Node_Info, Arc_Info >::reset_counter_nodes().
void reset_node | ( | Node * | node | ) | [inline] |
[in] | node | puntero a nodo a ser reiniciado. |
Definición en la línea 2601 del archivo tpl_graph.H.
Arc * search_arc | ( | void * | ptr | ) | [inline] |
La rutina recorre linealmente todos los arcos del grafo. Por cada nodo revisado, aplica el criterio de igualdad Equal()
() con parámetro especial dado mediante el puntero opaco ptr
.
Este es el método para buscar arcos cuando lo que contenga el arco no pueda discernirse según el sistema de tipos. Por ejemplo, para buscar algo específico guardado en el cookie.
[in] | ptr | puntero opaco a la información usada como criterio de búsqueda. |
NULL
de lo contrario. Definición en la línea 2169 del archivo tpl_graph.H.
La rutina recorre linealmente todos los arcos del grafo. Por cada arco revisado, aplica el operador ==
de la clase Arc_Info entre lo que está contenido en el arco y el valor del parámetro arc_info
.
[in] | arc_info | el valor de tipo Arc_Info con el cual se desea comparar. |
NULL
de lo contrario. Reimplementado en Concurrent_Graph.
La rutina recorre linealmente todos los arcos del grafo. Por cada arco revisado, se aplica el criterio de igualdad Equal()
() para verificar si hay una correspondencia con el valor del parámetro arc_info
.
Este es el método para buscar arcos cuando se el tipo Arc_Info sea estructurado y se desee discernir según algún campo especial, o cuando se desee buscar bajo otro criterio; una clase derivada cuya información no esté dentro de la clase base bajo el atributo get_info(), por ejemplo.
[in] | arc_info | el valor de tipo Arc_Info con el cual se desea comparar. |
NULL
de lo contrario. Reimplementado en Concurrent_Graph.
Node * search_node | ( | void * | ptr | ) | [inline] |
La rutina recorre linealmente todos los nodos del grafo. Por cada nodo revisado, la rutina aplica el criterio de igualdad Equal()
() para verificar si hay una correspondencia con el valor del parámetro apuntado por ptr
.
Este es el método para buscar nodos cuando lo que contenga el nodo no pueda discernirse según el sistema de tipos. Por ejemplo, para buscar algo específico guardado en el cookie.
[in] | ptr | puntero opaco a la información usada como criterio. de búsqueda. |
NULL
de lo contrario. Definición en la línea 2123 del archivo tpl_graph.H.
La rutina recorre linealmente todos los nodos del grafo. Por cada nodo revisado, la rutina aplica el operador ==
de la clase Node_Info entre lo que está contenido en el nodo y el valor del parámetro node_info
.
[in] | node_info | el valor de tipo Node_Info con el cual se desea comparar. |
NULL
de lo contrario. Reimplementado en Concurrent_Graph.
La rutina recorre linealmente todos los nodos del grafo. Por cada nodo revisado, la rutina aplica el criterio de igualdad Equal()
() para verificar si hay una correspondencia con el valor del parámetro node_info
.
Este es el método para buscar nodos cuando se el tipo Node_Info sea estructurado y se desee discernir según algún campo especial, o cuando se desee buscar bajo otro criterio; una clase derivada cuya información no esté dentro de la clase base bajo el atributo get_info(), por ejemplo.
[in] | node_info | el valor de tipo Node_Info con el cual se desea comparar. |
NULL
de lo contrario. Reimplementado en Concurrent_Graph.
void set_bit | ( | Arc * | arc, | |
const int & | bit, | |||
const int & | value | |||
) | [inline] |
[in] | arc | puntero del arco cuyo bit se desea escribir. |
[in] | bit | valor del bit a escribir. |
[in] | value | valor a escribir. |
Definición en la línea 2620 del archivo tpl_graph.H.
void set_bit | ( | Node * | node, | |
const int & | bit, | |||
const int & | value | |||
) | [inline] |
[in] | node | puntero del nodo cuyo bit se desea escribir. |
[in] | bit | valor del bit a escribir. |
[in] | value | valor a escribir. |
Definición en la línea 2575 del archivo tpl_graph.H.
void sort_arcs | ( | ) | [inline] |
Ordena los arcos de un grafo según el criterio de comparación Compare
.
Reimplementado en Concurrent_Graph, y Concurrent_Graph< __Node, __Arc >.
Definición en la línea 2552 del archivo tpl_graph.H.