示例#1
0
 /**
  * Obtiene los estados alcanzables desde un estado en particular con transiciones ε.
  *
  * @param state Estado inicial
  * @param states Lista de estados alcanzables
  */
 private List<Estado> getEstadosAlcanzables(Estado state, List<Estado> states) {
   for (Transicion transicion : state.getTransitions()) {
     if (transicion.getSymbol().equals(ε)) {
       states.add(transicion.getDestination());
       getEstadosAlcanzables(transicion.getDestination(), states);
     }
   }
   return states;
 }
示例#2
0
  /**
   * Obtiene los estados alcanzables desde un estado con transiciones ε y un símbolo en particular.
   *
   * @param state Estado inicial
   * @param symbol Transicion
   * @param states Lista de estados alcanzables
   */
  public List<Estado> buildSubconjuntoBySymbol(Estado state, String symbol, List<Estado> states) {
    for (Transicion transition : state.getTransitions()) {
      if (transition.getSymbol().equals(ε)) {
        buildSubconjuntoBySymbol(transition.getDestination(), symbol, states);
      } else {
        if (transition.getSymbol().equals(symbol)) {

          states.add(transition.getDestination());
        }
      }
    }
    return states;
  }