Esempio n. 1
0
 private Automata getNodo(Automata actual, int id)
 {
     if (actual.getN() == id)
     {
         return(actual);
     }
     visitados.Add(actual.getN());
     if (actual.getS2() != null)
     {
         if (!visitados.Contains(actual.getS2().getN()))
         {
             if (actual.getS2().getN() <= id)
             {
                 Automata a = getNodo(actual.getS2(), id);
                 if (a != null)
                 {
                     return(a);
                 }
             }
         }
     }
     if (actual.getS1() != null)
     {
         if (!visitados.Contains(actual.getS1().getN()))
         {
             if (actual.getS1().getN() <= id)
             {
                 return(getNodo(actual.getS1(), id));
             }
         }
     }
     return(null);
 }
Esempio n. 2
0
 private void TablaCerradura_Siguientes(Automata a, int idOrigen)
 {
     if (!siguientes.Contains(a.getN()) && a.getN() != idOrigen)
     {
         siguientes.Add(a.getN());
     }
     if (a.getS1() != null)
     {
         if (!siguientes.Contains(a.getS1().getN()))
         {
             if (a.getT1() == "ε")
             {
                 TablaCerradura_Siguientes(a.getS1(), idOrigen);
             }
         }
     }
     if (a.getS2() != null)
     {
         if (!siguientes.Contains(a.getS2().getN()))
         {
             if (a.getT2() == "ε")
             {
                 TablaCerradura_Siguientes(a.getS2(), idOrigen);
             }
         }
     }
 }
Esempio n. 3
0
 private int getUltimo(Automata actual)
 {
     if (actual.getS1() != null)
     {
         return(getUltimo(actual.getS1()));
     }
     return(actual.getN());
 }
Esempio n. 4
0
 private void TablaCerradura_Ir(Automata a)
 {
     visitados.Add(a.getN());
     if (a.getS1() != null)
     {
         if (!visitados.Contains(a.getS1().getN()))
         {
             if (a.getT1() == "ε")
             {
                 TablaCerradura_Ir(a.getS1());
             }
             else
             {
                 siguientes.Add(a.getN());
             }
         }
     }
     if (a.getS2() != null)
     {
         if (!visitados.Contains(a.getS2().getN()))
         {
             if (a.getT2() == "ε")
             {
                 TablaCerradura_Ir(a.getS2());
             }
             else
             {
                 siguientes.Add(a.getN());
             }
         }
     }
     if (a.getS1() == null && a.getS2() == null)
     {
         siguientes.Add(a.getN());
     }
 }
Esempio n. 5
0
 private void AFN(Automata a)
 {
     visitados.Add(a.getN());
     if (a.getS1() != null)
     {
         codigo += a.getN() + " -> " + a.getS1().getN() + " [label=\"" + a.getT1() + "\"];\n";
         if (!visitados.Contains(a.getS1().getN()))
         {
             AFN(a.getS1());
         }
     }
     if (a.getS2() != null)
     {
         codigo += a.getN() + " -> " + a.getS2().getN() + " [label=\"" + a.getT2() + "\"];\n";
         if (!visitados.Contains(a.getS2().getN()))
         {
             AFN(a.getS2());
         }
     }
     if (a.getS1() == null && a.getS2() == null)
     {
         codigo += a.getN() + " [shape=doublecircle];\n";
     }
 }