public ListaThomson UnionI() { ListaThomson Pila = new ListaThomson(); NodoThomson Iniciovacio = new NodoThomson("epsilon", "or"); NodoThomson Finalvacio = new NodoThomson("epsilon", "fin_or"); NodoThomson vacio3 = new NodoThomson("epsilon"); NodoThomson vacio2 = new NodoThomson("epsilon"); NodoThomson vacio = new NodoThomson("epsilon"); if (aux1.GetTipo() == "unica") { Iniciovacio.sig1 = aux1.GetInicio(); Iniciovacio.sig2 = vacio3; aux1.GetFinal().sig1 = vacio; vacio3.sig1 = vacio2; vacio.sig1 = Finalvacio; vacio2.sig1 = Finalvacio; } else if (aux1.GetTipo() == "doble") { Iniciovacio.sig1 = aux1.GetInicio(); Iniciovacio.sig2 = vacio3; aux1.GetFinal().sig1 = Finalvacio; vacio3.sig1 = vacio2; vacio2.sig1 = Finalvacio; } Pila.setInicio(Iniciovacio); Pila.setTFinal(Finalvacio); return(Pila); }
public ListaThomson Unir() { NodoThomson vacio = new NodoThomson("epsilon"); NodoThomson Iniciovacio = new NodoThomson("epsilon"); ListaThomson Pila = new ListaThomson(); NodoThomson Finalvacio = new NodoThomson("epsilon"); if (hijounico.GetTipo() == "unica") { Iniciovacio.sig1 = hijounico.GetInicio(); hijounico.GetFinal().sig1 = vacio; vacio.sig2 = hijounico.GetInicio(); vacio.sig1 = Finalvacio; Iniciovacio.sig2 = Finalvacio; Pila.setTipo("doble"); Pila.setInicio(Iniciovacio); Pila.setTFinal(Finalvacio); } else if (hijounico.GetTipo() == "doble") { Iniciovacio.sig1 = hijounico.GetInicio(); hijounico.GetFinal().sig2 = hijounico.GetInicio(); hijounico.GetFinal().sig1 = vacio; Iniciovacio.sig2 = vacio; Pila.setInicio(Iniciovacio); Pila.setTFinal(vacio); } else if (hijounico.GetInicio().GetTranscision() == "or") { Iniciovacio.sig1 = hijounico.GetInicio(); Iniciovacio.sig2 = Finalvacio; hijounico.GetInicio().sig2 = Finalvacio; hijounico.GetFinal().sig1 = Finalvacio; hijounico.GetFinal().sig2 = hijounico.GetInicio(); Pila.setInicio(Iniciovacio); Pila.setTFinal(Finalvacio); } return(Pila); }
public ListaThomson Union() { ListaThomson Pila = new ListaThomson(); NodoThomson vacio = new NodoThomson("epsilon"); NodoThomson Iniciovacio = new NodoThomson("epsilon"); NodoThomson Finalvacio = new NodoThomson("epsilon"); if (aux1.GetTipo() == "unica") { Iniciovacio.sig1 = aux1.GetInicio(); aux1.GetFinal().sig1 = vacio; vacio.sig2 = aux1.GetInicio(); vacio.sig1 = Finalvacio; Pila.setTipo("doble"); Pila.setInicio(Iniciovacio); Pila.setTFinal(Finalvacio); } else if (aux1.GetTipo() == "doble") { Iniciovacio.sig1 = aux1.GetInicio(); aux1.GetFinal().sig1 = Finalvacio; aux1.GetFinal().sig2 = aux1.GetInicio(); Pila.setInicio(Iniciovacio); Pila.setTFinal(Finalvacio); } else if (aux1.GetInicio().GetTranscision() == "or") { aux1.GetFinal().sig1 = Finalvacio; aux1.GetFinal().sig2 = aux1.GetInicio(); Pila.setInicio(aux1.GetInicio()); Pila.setTFinal(Finalvacio); } return(Pila); }
public ListaThomson junta() {// .a-. . = nodo letras = transiciones si me entendes eso ? ListaThomson Pila = new ListaThomson(); NodoThomson nulo = new NodoThomson("epsilon"); hijo1.GetFinal().sig1 = hijo2.GetInicio(); hijo2.GetFinal().sig1 = nulo; NodoThomson aux = hijo1.GetInicio(); /* // apuntaste una lista string cada vez que recorro la lista * //------a * //------a * // a ---------b */ Pila.setInicio(hijo1.GetInicio()); Pila.setTFinal(nulo); Pila.setTipo("doble"); MessageBox.Show(Pila.GetInicio().GetTranscision()); return(Pila); }
public Asterisco(ListaThomson hijounico) { this.hijounico = hijounico; }
public void AgregarTerminal(ListaThomson aux1, ListaThomson aux2, string Tipo) { ListaThomson L = new ListaThomson(); }
public ListaThomson(ListaThomson e1, string tipo) { }
public Punto_Concatenacion(ListaThomson H1, ListaThomson H2) {// . a b this.hijo1 = H1; this.hijo2 = H2; }
public ListaThomson Union() { ListaThomson Pila = new ListaThomson(); NodoThomson Iniciovacio = new NodoThomson("epsilon", "or"); NodoThomson Finalvacio = new NodoThomson("epsilon", "fin_or"); NodoThomson vacio2 = new NodoThomson("epsilon"); NodoThomson vacio = new NodoThomson("epsilon"); if (aux1.GetTipo() == "unica" && aux2.GetTipo() == "unica") { MessageBox.Show("si" + aux1.GetTipo() + aux2.GetTipo()); Iniciovacio.sig1 = aux1.GetInicio(); Iniciovacio.sig2 = aux2.GetInicio(); aux1.GetFinal().sig1 = vacio; aux2.GetFinal().sig1 = vacio2; vacio.sig1 = Finalvacio; vacio2.sig1 = Finalvacio; Pila.setTipo("doble"); } else if (aux1.GetTipo() == "doble" && aux2.GetTipo() == "doble") { MessageBox.Show("si es doble"); Iniciovacio.sig1 = aux1.GetInicio(); Iniciovacio.sig2 = aux2.GetInicio(); aux1.GetFinal().sig1 = Finalvacio; aux2.GetFinal().sig1 = Finalvacio; Pila.setTipo("doble"); } else if (aux1.GetTipo() == "doble" && aux2.GetTipo() == "unica") { MessageBox.Show("unica y doble"); Iniciovacio.sig1 = aux1.GetInicio(); Iniciovacio.sig2 = aux2.GetInicio(); aux1.GetFinal().sig1 = Finalvacio; aux2.GetFinal().sig1 = vacio2; vacio.sig1 = Finalvacio; Pila.setTipo("doble"); } else if (aux1.GetTipo() == "unica" && aux2.GetTipo() == "doble") { MessageBox.Show("unica y doble"); Iniciovacio.sig1 = aux1.GetInicio(); Iniciovacio.sig2 = aux2.GetInicio(); aux1.GetFinal().sig1 = Finalvacio; aux2.GetFinal().sig1 = vacio2; vacio2.sig1 = Finalvacio; Pila.setTipo("doble"); } else if (aux1.GetInicio().GetTranscision() == "or") { aux1.GetInicio().sig2 = Finalvacio; aux1.GetFinal().sig1 = Finalvacio; aux1.GetFinal().sig2 = aux1.GetInicio(); Pila.setInicio(aux1.GetInicio()); Pila.setTFinal(Finalvacio); Pila.setTipo("doble"); } Pila.setInicio(Iniciovacio); Pila.setTFinal(Finalvacio); return(Pila); }
public OR(ListaThomson A1) { this.aux1 = A1; }
public OR(ListaThomson A1, ListaThomson A2) { this.aux1 = A1; this.aux2 = A2; }
public void Menu() { for (int i = Thomson.Count() - 1; i >= 0; i--) { Nodo aux = Thomson.ElementAt(i); if (aux.getT() == Nodo.TipoNodo.Terminal) { NodoThomson nuevo = new NodoThomson(aux.getDescripcion()); // ya guarda la transicion ListaThomson li = new ListaThomson(nuevo); li.setTipo("unica"); PilaT.AddLast(li); } else if (aux.getT() == Nodo.TipoNodo.CerraduraA) { ListaThomson aux1 = new ListaThomson(); aux1 = PilaT.Last(); PilaT.RemoveLast(); Asterisco A = new Asterisco(aux1); ListaThomson R = A.Unir(); PilaT.AddLast(R); } else if (aux.getT() == Nodo.TipoNodo.CerraduraI) { ListaThomson aux1 = new ListaThomson(); aux1 = PilaT.Last(); PilaT.RemoveLast(); OR A = new OR(aux1); ListaThomson R = A.UnionI(); PilaT.AddLast(R); } else if (aux.getT() == Nodo.TipoNodo.Concatenacion) { // . ab // sacar los 2 de la cima // meter la lista resultante a la pila y cambiar el tipo ListaThomson aux1 = new ListaThomson(); ListaThomson aux2 = new ListaThomson(); ListaThomson R = new ListaThomson(); aux1 = PilaT.Last(); PilaT.RemoveLast(); aux2 = PilaT.Last(); PilaT.RemoveLast(); Punto_Concatenacion concatena = new Punto_Concatenacion(aux1, aux2); ListaThomson resultado = concatena.junta(); PilaT.AddLast(resultado); // lo meto a la pila } else if (aux.getT() == Nodo.TipoNodo.OR) { ListaThomson aux1 = new ListaThomson(); ListaThomson aux2 = new ListaThomson(); ListaThomson R = new ListaThomson(); aux1 = PilaT.Last(); PilaT.RemoveLast(); aux2 = PilaT.Last(); PilaT.RemoveLast(); OR or = new OR(aux1, aux2); R = or.Union(); PilaT.AddLast(R); } else if (aux.getT() == Nodo.TipoNodo.CerraduraP) { ListaThomson aux1 = new ListaThomson(); ListaThomson aux2 = new ListaThomson(); ListaThomson R = new ListaThomson(); aux1 = PilaT.Last(); PilaT.RemoveLast(); Mas mas = new Mas(aux1); R = mas.Union(); PilaT.AddLast(R); } else if (aux.getT() == Nodo.TipoNodo.CerraduraI) { ListaThomson aux1 = new ListaThomson(); ListaThomson aux2 = new ListaThomson(); ListaThomson R = new ListaThomson(); aux1 = PilaT.Last(); PilaT.RemoveLast(); Mas mas = new Mas(aux1); R = mas.Union(); PilaT.AddLast(R); } } }
public Mas(ListaThomson aux1) { this.aux1 = aux1; }