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

#include <tpl_test_connectivity.H>

Public Member Functions

bool operator() (GT &g, SA &&sa=SA()) const
 
bool operator() (GT &g, SA &sa) const
 

Detailed Description

template<class GT, class SA = Dft_Show_Arc<GT>>
class Test_Connectivity< GT, SA >

Determina si un grafo g es conexo.

Esta clase realiza una prueba de conectividad del grafo g. La prueba apela a un recorrido en profundidad.

La clase verifica la cantidad de arcos. Si esta cantidad es menor que el número de nodos, entonces el grafo se considera inconexo.

La función 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
depth_first_traversal() is_reachable()

Member Function Documentation

◆ operator()() [1/2]

template<class GT , class SA = Dft_Show_Arc<GT>>
bool Test_Connectivity< GT, SA >::operator() ( GT &  g,
SA &&  sa = SA() 
) const
inline

Invoca a la prueba de conectividad.

Esta versión se emplea cuando se requiera que el filtro de arcos mantenga un estado.

Parameters
[in]gel grafo o digrafo a verificar.
[in]sael filtro de arcos del grafo.
Returns
true si el grafo es conexo; false de lo contrario.
Note
Debido a la prueba con el número de arcos, esta función es incorrecta para multigrafos.
Exceptions
domain_errorsi la rutina es invocada sobre un digrafo.

◆ operator()() [2/2]

template<class GT , class SA = Dft_Show_Arc<GT>>
bool Test_Connectivity< GT, SA >::operator() ( GT &  g,
SA &  sa 
) const
inline

Invoca a la prueba de conectividad.

    Esta versión se emplea cuando se requiera que el filtro de arcos
    mantenga un estado.

    @param[in] g el grafo o digrafo a verificar.
    \param[in] sa el filtro de arcos del grafo.
    @return true si el grafo es conexo; false de lo contrario.
    @note Debido a la prueba con el número de arcos, esta función
    es incorrecta para multigrafos.
    @throw domain_error si la rutina es invocada sobre un digrafo.

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

Leandro Rabindranath León