示例#1
0
        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);
        }
示例#2
0
        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);
                    }
                }
            }
        }
示例#3
0
 public ListaEstados(ListaEstados L, string Transicion)
 {
     this.Transicion = Transicion;
     this.ESTADOS    = L;
     this.Estado     = L.GetEstado();
 }