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); }
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); } } } }
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()); } }
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"; } }