Aleph-w  1.9
General library for algorithms and data structures
Aleph::Inconnected_Components< GT, SA > Class Template Reference

#include <tpl_components.H>

Public Member Functions

 Inconnected_Components (SA __sa=SA()) noexcept(std::is_nothrow_move_assignable< SA >::value)
 
template<template< class > class List>
void compute_blocks (const GT &g, List< GT > &list)
 
template<template< class > class List>
void compute_lists (const GT &g, List< List< typename GT::Node *> > &list)
 
void operator() (const GT &g, DynList< GT > &list)
 
void operator() (const GT &g, DynList< DynList< typename GT::Node *>> &list)
 

Detailed Description

template<class GT, class SA = Dft_Show_Arc<GT>>
class Aleph::Inconnected_Components< GT, SA >

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:

  1. GT: el tipo de grafo, el cual debe ser derivado de List_Graph.
  2. SA: clase que se encarga de mostrar el arco. Internamente, la función emplea el iterador filtro Node_Arc_Iterator (basado en Filter_Iterator) para recorrer los arcos de cada nodo. SA es el la clase que determina si el arco debe o no mostrarse al recorrido.
See also
copy_graph()

Member Function Documentation

◆ operator()() [1/2]

template<class GT , class SA = Dft_Show_Arc<GT>>
void Aleph::Inconnected_Components< GT, SA >::operator() ( const GT &  g,
DynList< GT > &  list 
)
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.

Parameters
[in]gel grafo sobre el cual se desea calcular sus bloques.
[out]listlista de subgrafos mapeados a g con los subgrafos o componentes inconexos de g.
Exceptions
bad_allocsi no hay memoria para construir algún bloque o insertar en la lista.

◆ operator()() [2/2]

template<class GT , class SA = Dft_Show_Arc<GT>>
void Aleph::Inconnected_Components< GT, SA >::operator() ( const GT &  g,
DynList< DynList< typename GT::Node *>> &  list 
)
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.

Parameters
[in]gel grafo sobre el cual se desea calcular sus bloques.
[out]listlista de listas de nodos; cada lista contiene los nodos que son parte de un componente conexo.
Exceptions
bad_allocsi no hay memoria para construir algún bloque o insertar en la lista.

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

Leandro Rabindranath León