Exemplo n.º 1
0
 public Arbol(ListaNodos listaEnlazada)
 {
     _le   = listaEnlazada;
     _raiz = null;
     _aux  = _le.aux;
     _pila = new LIFO();
     _cola = new FIFO();
     arbolBi();
 }
Exemplo n.º 2
0
        private Nodo CalculoPostOrder(FIFO cola, LIFO auxCola)
        {
            Nodo   temp = new Nodo("");
            double num1 = 0;
            double num2 = 0;

            if (cola.peek() != null)
            {
                if (char.IsNumber(Convert.ToChar(cola.peek().datos)))
                {
                    auxCola.push(cola.dequeue());
                    temp = CalculoPostOrder(cola, auxCola);
                }
                else
                {
                    num1 = Convert.ToDouble(auxCola.pop().datos.ToString());
                    num2 = Convert.ToDouble(auxCola.pop().datos.ToString());
                    if (cola.peek().datos.Equals("+"))
                    {
                        temp.datos = Convert.ToString(num2 + num1);
                    }
                    else if (cola.peek().datos.Equals("-"))
                    {
                        temp.datos = Convert.ToString(num2 - num1);
                    }
                    else if (cola.peek().datos.Equals("*"))
                    {
                        temp.datos = Convert.ToString(num2 * num1);
                    }
                    else if (cola.peek().datos.Equals("/"))
                    {
                        temp.datos = Convert.ToString(num2 / num1);
                    }
                    cola.dequeue();
                    auxCola.push(temp);
                    if (cola.peek() != null)
                    {
                        temp = CalculoPostOrder(cola, auxCola);
                    }
                    else
                    {
                        temp = auxCola.pop();
                    }
                }
            }
            return(temp);
        }