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

#include <Tarjan.H>

Public Member Functions

 Compute_Cycle_In_Digraph (SA &&__sa=SA()) noexcept(std::is_nothrow_move_assignable< SA >::value)
 
 Compute_Cycle_In_Digraph (SA &__sa) noexcept(std::is_nothrow_copy_assignable< SA >::value)
 
bool operator() (const GT &g, Path< GT > &path) const
 
Path< GT > operator() (const GT &g) const
 
Path< GT > operator() (const GT &g, typename GT::Node *src) const
 

Detailed Description

template<class GT, template< typename, class > class Itor = Out_Iterator, class SA = Dft_Show_Arc<GT>>
class Aleph::Compute_Cycle_In_Digraph< GT, Itor, SA >

Determina si un digrafo contiene un ciclo y lo construye.

Compute_Cycle_In_Digraph() toma un digrafo g, determina si contiene un ciclo y, en caso afirmativo, construye un camino contentivo del ciclo en cuestión.

La clase se basa en el algoritmo de Tarjan.

La función emplea dos parámetros tipo:

  1. GT: la clase digrafo.
  2. SA: el filtro de arcos que emplea el iterador interno.

La clase se vale del bit build_subtree para marcar nodos y arcos visitados.

Exceptions
domain_errorsi g es un grafo (no un digrafo)

Member Function Documentation

◆ operator()()

template<class GT , template< typename, class > class Itor = Out_Iterator, class SA = Dft_Show_Arc<GT>>
bool Aleph::Compute_Cycle_In_Digraph< GT, Itor, SA >::operator() ( const GT &  g,
Path< GT > &  path 
) const
inline

Invoca al cálculo de un ciclo en un digrafo.

Parameters
[in]gel grafo sobre el cual se desea calcular sus bloques.
[out]pathcamino que define el ciclo.
Returns
true si el grafo contiene un ciclo; false de lo contrario. En este último caso el valor de path es indeterminado.
Exceptions
bad_allocsi no hay suficiente memoria.
+ Here is the call graph for this function:

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

Leandro Rabindranath León