00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef VCSN_ALGORITHMS_INTERNAL_HAS_NEIGHBOUR_HXX
00018 # define VCSN_ALGORITHMS_INTERNAL_HAS_NEIGHBOUR_HXX
00019
00020 # include <vaucanson/algorithms/internal/has_neighbour.hh>
00021
00022 namespace vcsn {
00023
00024
00025 template<typename A, typename T>
00026 bool has_successors(const Element<A, T>& a,
00027 const typename automaton_traits<T>::hstate_t s)
00028 {
00029 typedef Element<A, T> automaton_t;
00030 AUTOMATON_TYPES(automaton_t);
00031 precondition (a.has_state (s));
00032 delta_iterator i(a.value(), s);
00033 return ! i.done();
00034 }
00035
00036 template<typename A, typename T>
00037 bool has_predecessors(const Element<A, T>& a,
00038 const typename automaton_traits<T>::hstate_t s)
00039 {
00040 typedef Element<A, T> automaton_t;
00041 AUTOMATON_TYPES(automaton_t);
00042 precondition (a.has_state (s));
00043 rdelta_iterator i(a.value(), s);
00044 return ! i.done();
00045 }
00046 }
00047
00048 #endif // ! VCSN_ALGORITHMS_INTERNAL_HAS_NEIGHBOUR_HXX