private void ApilarOperador(StringBuilder salida, PilaLista operadores, string token) { salida.Append(" "); if (operadores.lista().Count > 0) { DesapilaOperando(token, operadores, salida); } operadores.insertar(token); }
private void VaciarOperandos(StringBuilder salida, PilaLista operadores) { salida.Append(" "); while (operadores.lista().Count > 0) { string sop = (string)operadores.quitar(); if (sop == "(") { throw new Exception("Error falta parentesis de cierre )"); } salida.Append(sop + " "); } }
public void DesapilaOperando(string operador, PilaLista lista, StringBuilder salida) { int dato = prioridad(operador); string op = (string)lista.quitar(); int dato2 = prioridad(op); while (dato <= dato2) { salida.Append(op + " "); if (lista.lista().Count == 0) { break; } op = (string)lista.quitar(); dato2 = prioridad(op); } if (dato > dato2) { lista.insertar(op); } }