#include <tpl_components.H>
Métodos públicos | |
Inconnected_Components (SA &&__sa=SA()) | |
Inconnected_Components (SA &__sa) | |
template<template< class > class List> | |
void | compute_blocks (GT &g, List< GT > &list) |
template<template< class > class List> | |
void | compute_lists (GT &g, List< List< typename GT::Node * > > &list) |
void | operator() (GT &g, DynDlist< GT > &list) |
void | operator() (GT &g, DynDlist< DynDlist< typename GT::Node * > > &list) |
void | operator() (GT &g, DynList< GT > &list) |
void | operator() (GT &g, DynList< DynList< typename GT::Node * > > &list) |
Calcula los componentes inconexos de un grafo.
La clase Inconnected_Components toma un grafo g, "supuestamente inconexo" calcula sus subgrafos o componentes inconexos y los almacena en una lista dinámica de subgrafos mapeados, tanto en los nodos como en los arcos. El énfasis en el supuesto carácter conexo del grafo se debe a que si el grafo no fuese conexo, entonces la lista resultante contendría un solo elemento correspondiente al grafo copia mapeado de g. Si este fuese el caso, entonces es preferible hacerlo con la función copy_graph().
La clase toma dos parámetros tipo:
|
inline |
Invoca a la determinación de los componentes inconexos.
La función se vale del bit build_subtree para marcar nodos y arcos visitados.
El algoritmo internamente descubre los componentes mediante búsquedas en profundidad.
[in] | g | el grafo sobre el cual se desea calcular sus bloques. |
[out] | list | lista de subgrafos mapeados a g con los subgrafos o componentes inconexos de g. |
bad_alloc | si no hay memoria para construir algún bloque o insertar en la lista. |
|
inline |
Calcula los componentes inconexos por listas de listas de nodos.
La función se vale del bit build_subtree para marcar nodos y arcos visitados.
El algoritmo internamente descubre los componentes mediante búsquedas en profundidad.
[in] | g | el grafo sobre el cual se desea calcular sus bloques. |
[out] | list | lista de listas de nodos; cada lista contiene los nodos que son parte de un componente conexo. |
bad_alloc | si no hay memoria para construir algún bloque o insertar en la lista. |