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

#include <tpl_find_path.H>

Public Member Functions

 Find_Path_Breadth_First (SA &_sa) noexcept(std::is_nothrow_copy_assignable< SA >::value)
 
 Find_Path_Breadth_First (SA &&_sa=SA()) noexcept(std::is_nothrow_constructible< SA >::value and std::is_nothrow_copy_assignable< SA >::value)
 
template<class Op >
Path< GT > operator() (const GT &g, typename GT::Node *start, Op &op)
 
template<class Op >
Path< GT > operator() (const GT &g, typename GT::Node *start, Op &&op)
 
bool operator() (const GT &g, typename GT::Node *start, typename GT::Node *end, Path< GT > &path)
 
Path< GT > operator() (const GT &g, typename GT::Node *start, typename GT::Node *end)
 

Detailed Description

template<class GT, template< typename, class > class Itor = Node_Arc_Iterator, class SA = Dft_Show_Arc<GT>>
class Aleph::Find_Path_Breadth_First< GT, Itor, SA >

Busca en amplitud un camino entre un par de nodos.

Find_Path_Breadth_First busca en amplitud un camino entre start_node y end_node, a la vez que va construyendo un camino hacia el nodo destino. Si se encuentra un camino, entonces el método retorna true y el parámetro path alberga el camino en cuestión; de lo contrario, la función retorna false y valor del camino es indeterminado.

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
find_path_depth_first()
dijkstra_min_spanning_tree() dijkstra_min_path()
bellman_ford_min_spanning_tree() q_bellman_ford_min_spanning_tree()

Member Function Documentation

◆ operator()() [1/3]

template<class GT , template< typename, class > class Itor = Node_Arc_Iterator, class SA = Dft_Show_Arc<GT>>
template<class Op >
Path<GT> Aleph::Find_Path_Breadth_First< GT, Itor, SA >::operator() ( const GT &  g,
typename GT::Node *  start,
Op &  op 
)
inline

Invoca a la búsqueda de camino en amplitud.

Parameters
[in]gel grafo sobre el cual se desea buscar el camino.
[in]startpuntero al nodo inicio del camino.
[out]pathel camino visto durante la búsqueda en amplitud; sólo tiene sentido si el valor de retorno es true.
[in]opcriterio de fin de búsqueda sobre el nodo visitado
Exceptions
bad_allocsi no hay memoria para continuar construyendo el camino o para la cola interna del recorrido en amplitud.

◆ operator()() [2/3]

template<class GT , template< typename, class > class Itor = Node_Arc_Iterator, class SA = Dft_Show_Arc<GT>>
bool Aleph::Find_Path_Breadth_First< GT, Itor, SA >::operator() ( const GT &  g,
typename GT::Node *  start,
typename GT::Node *  end,
Path< GT > &  path 
)
inline

Invoca a la búsqueda de camino en amplitud.

Parameters
[in]gel grafo sobre el cual se desea buscar el camino.
[in]startpuntero al nodo inicio del camino. [in] end puntero al nodo destino del camino.
[out]pathel camino visto durante la búsqueda en amplitud; sólo tiene sentido si el valor de retorno es true.
Exceptions
bad_allocsi no hay memoria para continuar construyendo el camino o para la cola interna del recorrido en amplitud.

◆ operator()() [3/3]

template<class GT , template< typename, class > class Itor = Node_Arc_Iterator, class SA = Dft_Show_Arc<GT>>
Path<GT> Aleph::Find_Path_Breadth_First< GT, Itor, SA >::operator() ( const GT &  g,
typename GT::Node *  start,
typename GT::Node *  end 
)
inline

Invoca a la búsqueda de camino en amplitud.

Parameters
[in]gel grafo sobre el cual se desea buscar el camino.
[in]startpuntero al nodo inicio del camino.
[in]endpuntero al nodo destino del camino.
Returns
path el camino visto durante la búsqueda en amplitud
Exceptions
bad_allocsi no hay memoria para continuar construyendo el camino o para la cola interna del recorrido en amplitud.

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

Leandro Rabindranath León