public override void Mostrar(int nivel = 0) { Separar(nivel); Console.WriteLine("WHILE"); Izquierda.Mostrar(nivel + 1); Separar(nivel); Console.WriteLine("DO"); Derecha.Mostrar(nivel + 1); Separar(nivel); Console.WriteLine("END"); }
public override int Evaluar() { var resultado = 0; while (Izquierda.Evaluar() != 0) { resultado = Derecha.Evaluar(); } return(resultado); }
public override void Mostrar(int nivel = 0) { Separar(nivel); Console.WriteLine("IF"); Condicion.Mostrar(nivel + 1); Separar(nivel); Console.WriteLine("THEN"); Izquierda.Mostrar(nivel + 1); if (Derecha != null) { Separar(nivel); Console.WriteLine("ELSE"); Derecha.Mostrar(nivel + 1); } Separar(nivel); Console.WriteLine("END"); }
Patron(char Caracter, List <bool> data)//Crea patron para prefijos { if (Derecha == null && Izquierda == null) { if (Caracter.Equals(this.Caracter)) { return(data); } else { return(null); } } else { List <bool> left = null; List <bool> right = null; if (Izquierda != null) { List <bool> leftPath = new List <bool>(); leftPath.AddRange(data); leftPath.Add(false); left = Izquierda.Patron(Caracter, leftPath); } if (Derecha != null) { List <bool> rightPath = new List <bool>(); rightPath.AddRange(data); rightPath.Add(true); right = Derecha.Patron(Caracter, rightPath); } if (left != null) { return(left); } else { return(right); } } }
public int calcularaltura() { if (Izquierda == null && Derecha == null) { altura = 1; } else { if (Izquierda == null) { Derecha.calcularaltura(); altura = Derecha.altura + 1; } else { if (Derecha == null) { Izquierda.calcularaltura(); altura = Izquierda.altura + 1; } else { Izquierda.calcularaltura(); Derecha.calcularaltura(); if (Derecha.altura >= Izquierda.altura) { altura = Derecha.altura + 1; } else { altura = Izquierda.altura + 1; } } } } return(altura); }
public override int Evaluar() => Izquierda.Evaluar() < Derecha.Evaluar() ? 1 : 0;
public override int Evaluar() => Izquierda.Evaluar() *Derecha.Evaluar();
public override void Mostrar(int nivel = 0) { Separar(nivel); Console.WriteLine(Operador); Izquierda.Mostrar(nivel + 1); Derecha.Mostrar(nivel + 1); }
public override string NPI() => $"({Operador} {Izquierda.NPI()} {Derecha.NPI()})";
public override int Evaluar() => Condicion.Evaluar() != 0 ? Izquierda.Evaluar() : Derecha?.Evaluar() ?? 0;