public void Union() { RecursivoCerr(lista_lineal_nodos.First(), "epsilon"); ListaEstados L = new ListaEstados(lista_ceradura); ESTADOS.AddLast(L); lista_ceradura = new LinkedList <NodoThomson>(); lista_mov = new LinkedList <NodoThomson>(); UnionSiguiente(L); }
public void UnionSiguiente(ListaEstados L) { foreach (string alvTrans in lista_terminal) { // Console.WriteLine(alvTrans + "aquiiiiii"); foreach (NodoThomson alv in L.GetListaCerradura()) { RecursivoMov(alv, alvTrans); } foreach (NodoThomson item in lista_mov) { RecursivoCerr(item, "epsilon"); bool aux = false; foreach (ListaEstados AUX in ESTADOS) { if (repetido3(AUX.GetListaCerradura()) == true) { L.GetListaEstados().AddLast(new ListaEstados(AUX, alvTrans)); lista_ceradura = new LinkedList <NodoThomson>(); Console.WriteLine("repetido"); lista_mov = new LinkedList <NodoThomson>(); aux = true; } } if (aux == false) { bool aux2 = false; ListaEstados L2 = new ListaEstados(lista_ceradura); foreach (NodoThomson LOOL in lista_ceradura) { foreach (NodoThomson ALVVV in lista_lineal_nodos) { if (ALVVV.sig1 != null) { if (LOOL.GetEstado().Equals(ALVVV.GetEstado())) { Console.WriteLine("SIUUUUUUUUUUUUUUUUUUUUUUUUUUUU" + LOOL.GetEstado()); ALVVV.SetTipo("FIN"); } } else if (ALVVV.sig2 != null) { if (LOOL.GetEstado().Equals(ALVVV.GetEstado())) { ALVVV.SetTipo("FIN"); Console.WriteLine("SIUUUUUUUUUUUUUUUUUUUUUUUUUUUU" + LOOL.GetEstado()); } } } } ESTADOS.AddLast(L2); L.GetListaEstados().AddLast(new ListaEstados(L2, alvTrans)); lista_ceradura = new LinkedList <NodoThomson>(); Console.WriteLine("nuevoo " + "->"); lista_mov = new LinkedList <NodoThomson>(); UnionSiguiente(L2); } } } }
public ListaEstados(ListaEstados L, string Transicion) { this.Transicion = Transicion; this.ESTADOS = L; this.Estado = L.GetEstado(); }