public void operdor() { nodo actual = primero; int x, y; while (actual != null) { if (actual != null && actual.Siguiente != null && actual.Siguiente.Siguiente != null) { if (actual.Tipo == 3 && actual.Siguiente.Tipo == 1 && actual.Siguiente.Siguiente.Tipo == 1) { insertarIzquierda(actual, actual.Siguiente); insertarDerescha(actual, actual.Siguiente.Siguiente); x = actual.Siguiente.Id; y = actual.Siguiente.Siguiente.Id; // Console.WriteLine("eliminar: " + x); // Console.WriteLine("eliminar: " + y); eliminar(x); eliminar(y); actual.Tipo = 1; } } actual = actual.Siguiente; } }
public nodo concatenacion(nodo primero, nodo segundo) { primero.U.Siguiente = segundo; return(primero); }
public thompsom(String nombre, nodo r) { this.nombre = nombre; this.id = 0; this.primero = null; this.segundo = null; this.raiz = r; this.p = false; this.s = false; }
private void recorrerArbol(nodo r) { if (r != null) { Console.WriteLine(r.Lexema + " TIPO" + r.Tipo); recorrerArbol(r.Izquierda); recorrerArbol(r.Derecha); } }
public void recorrerLista() { nodo actual = primero; while (actual != null) { Console.WriteLine(" " + actual.Id + " Lexema: " + actual.Lexema + " tipo: " + actual.Tipo + " Logico: " + actual.Logico); actual = actual.Siguiente; } }
public nodo(int id, string lexema, int tipo, int logico) { this.id = id; this.lexema = lexema; this.tipo = tipo; this.logico = logico; this.siguiente = null; this.derecha = null; this.izquierda = null; this.u = null; }
public nodo a(string hijo) { nodo nuevo = new nodo(id, hijo, 20, 20); id++; nodo ultimo = new nodo(id, "", 30, 30); id++; primero.Siguiente = ultimo; primero.U = ultimo; return(nuevo); }
public nodo alternacion(nodo primero, nodo segundo) { nodo nuevo = new nodo(id, "", 30, 30); id++; nodo ultimo = new nodo(id, "", 30, 30); id++; nuevo.Izquierda = primero; nuevo.Derecha = segundo; primero.U.Siguiente = ultimo; segundo.U.Siguiente = ultimo; return(nuevo); }
public void insertar(string lexema, int tipo, int logico) { nodo nuevo = new nodo(id, lexema, tipo, logico); id++; if (primero == null) { primero = nuevo; ultimo = primero; } else { ultimo.Siguiente = nuevo; ultimo = nuevo; } }
public nodo cuantificacionM(nodo unico) { nodo nuevo = new nodo(id, "", 30, 30); id++; nodo ultimo = new nodo(id, "", 30, 30); id++; nuevo.Siguiente = unico; nuevo.Derecha = ultimo; unico.U.Siguiente = ultimo; unico.U.Izquierda = unico; nuevo.U = ultimo; return(nuevo); }
public void manejo(nodo nuevo) { if (p == false) { primero = nuevo; p = true; } else if (p == true && s == false) { segundo = nuevo; s = true; } else if (p == true && s == true) { primero = nuevo; segundo = null; s = false; } }
public void recorrer(nodo r) { if (r != null) { recorrer(r.Izquierda); recorrer(r.Derecha); if (r.Logico == 8 || r.Logico == 3) { manejo(a(r.Lexema)); } else if (r.Logico == 5 && r.Lexema.Equals(".")) { manejo(concatenacion(primero, segundo)); } else if (r.Logico == 5 && r.Lexema.Equals("|")) { manejo(alternacion(primero, segundo)); } } }
public void eliminar(int id) { nodo actual = primero; nodo anterior = null; while (actual != null) { if (actual.Id == id) { if (actual == primero) { primero = primero.Siguiente; } else { anterior.Siguiente = actual.Siguiente; } } anterior = actual; actual = actual.Siguiente; } }
public void operadorUnico() { nodo actual = primero; ///nodo aux=null; while (actual != null) { if (actual != null && actual.Siguiente != null) { if (actual.Tipo == 2 && actual.Siguiente.Tipo == 1) { // Console.WriteLine("encontrado: " + actual.Lexema + " ingreso I" + actual.Siguiente.Lexema); insertarIzquierda(actual, actual.Siguiente); eliminar(actual.Siguiente.Id); actual.Tipo = 1; } } actual = actual.Siguiente; } }
public nodoM(string nombre, nodo contenido) { this.nombre = nombre; this.contenido = contenido; this.siguiente = null; }
public void insertarIzquierda(nodo actual, nodo insertar) { actual.Izquierda = insertar; // eliminar(insertar.Id); }
public Lista() { this.primero = null; this.ultimo = null; }
public void insertarDerescha(nodo actual, nodo insertar) { actual.Derecha = insertar; //eliminar(insertar.Id); }