Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Infija a Postfija en c++

Estas en el tema de Infija a Postfija en c++ en el foro de C/C++ en Foros del Web. hola amigos tengo un problemita tengoq hacer un programita que me convierta una expresion infija a postfija algo asi: Infija (2+3) * (5+6) Posfija 23+56+* ...
  #1 (permalink)  
Antiguo 26/03/2009, 23:53
Avatar de baxi2990  
Fecha de Ingreso: agosto-2008
Ubicación: Quetzaltenango - Guatemala
Mensajes: 340
Antigüedad: 15 años, 8 meses
Puntos: 2
Infija a Postfija en c++

hola amigos tengo un problemita tengoq hacer un programita que me convierta una expresion infija a postfija algo asi:

Infija
(2+3) * (5+6)
Posfija
23+56+*

tengo q usar pilas, mi algoritmo esta algo asi

Entrada Operacion
Operando --------- Salida donde se concatenaran los caracteres para postfija
( --------------------- Pusch
) --------------------- Pop hasta encontrar ( y los operadores q se eliminen valla a la concatenacion.
operador ---------- Pop hasta operadores >= a operador y si es asi va a la salida y luego el operador se inserta a la pila.

bueno la duda es como voy saber si el operador " /, *, +, - " es mayor al operador q esta en la cima de la pila si algien me puede ayudar agradeceria la ayuda.
  #2 (permalink)  
Antiguo 27/03/2009, 14:00
Avatar de Instru  
Fecha de Ingreso: noviembre-2002
Ubicación: Mexico
Mensajes: 2.751
Antigüedad: 21 años, 5 meses
Puntos: 52
Respuesta: Infija a Postfija en c++

Pues yo diria que estableciendo una jerarquia de operaciones.
Yo recuerdo que cuando me toco hacer ese programa, yo puse bastantes condiciones y depsues las reduje con logica matematica. No es complicado, pero practicamente son puras condiciones.

Saludos
  #3 (permalink)  
Antiguo 27/03/2009, 23:34
Avatar de baxi2990  
Fecha de Ingreso: agosto-2008
Ubicación: Quetzaltenango - Guatemala
Mensajes: 340
Antigüedad: 15 años, 8 meses
Puntos: 2
Respuesta: Infija a Postfija en c++

Gracias pues ya voy solucionando esto,pero ahora mi problema es que cuando toca cerrar el parentesis tiene que hacer pop hasta encontrar el parentesis q abre y los signos q encuentre en su camino vallan a la salida a concatenarse * / + -, y tambiense elimine el ( perono logro q se borre ese
tengo algo asi

do{
salida=salida + caracter
pop(caracter)
}while(hasta que caracter q esta en la cima de la pila sea '(' )

pero no me borra el parentesis
  #4 (permalink)  
Antiguo 08/04/2009, 21:07
Avatar de baxi2990  
Fecha de Ingreso: agosto-2008
Ubicación: Quetzaltenango - Guatemala
Mensajes: 340
Antigüedad: 15 años, 8 meses
Puntos: 2
Respuesta: Infija a Postfija en c++

Gracias Instru agradeceria mucho tu ayuda por q ya intente de todo y si me resuelve algunas expresiones pero no todas gracias
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:35.