public Arbol(ListaNodos listaEnlazada) { _le = listaEnlazada; _raiz = null; _aux = _le.aux; _pila = new LIFO(); _cola = new FIFO(); arbolBi(); }
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); }