En c pasar de infija a postfija

Paula
17 de Septiembre del 2005
Hola a todos. Estoy deseperada pues no doy hecho este programa. Os agradecería muchisisisimo que me ayudarias. Si teneis ya hecho alguno pues aun mejor.
Gracias y os necesito

juanin
17 de Septiembre del 2005
De que programa hablas? infija? postfija? Se supone que es de dominio publico? Quizas si te explicas mas alguien te pueda ayudar

Jesus Andres
17 de Septiembre del 2005
esto es pichanga ya lo tengo hecho.Es tan solo usar pilas y listas,pueden ser circulares, o simplemente una abierta,debes informarte sobre la notacion polaca inversa o notacion posfija, es facil.Para que la quieres........

feuer
17 de Septiembre del 2005
# include<iostream.h>
# include<string.h>
# include<conio.h>

void main(){
clrscr();
char epos[1000],pila[1000],*ei;
char sim;
int i=0,tope=0,f=0,a,jerarquia,jerarquia1;
gotoxy(5,5);cout<<" Expresion Infija : ";cin>>ei;
a=strlen(ei);
for(i=0;i<a;i++){
sim=ei[i];

if(sim!='*' && sim!='/' && sim!='+' && sim!='-' && sim!='^' && sim!='('&& sim!=')'){
epos[f]=sim; f++;
}

if(sim=='('){
tope++;
pila[tope]=sim;
}
if(sim==')'){
while(pila[tope]!='('){
epos[f]=pila[tope];
f++; tope--;
}
tope--;
}
if(sim=='+' || sim=='-' || sim=='*' || sim=='/' || sim=='^'){
if(tope>0){
if(sim=='+' || sim=='-'){
jerarquia=0;
}
if(sim=='*' || sim=='/'){
jerarquia=1;
}
if(sim=='^'){
jerarquia=2;
}
if(pila[tope]=='+' || pila[tope]=='-'){
jerarquia1=0;
}
if(pila[tope]=='*' || pila[tope]=='/'){
jerarquia1=1;
}
if(pila[tope]=='^'){
jerarquia1=2;
}
while(tope>0 && pila[tope]!='(' && jerarquia<=jerarquia1){
epos[f]=pila[tope]; f++; tope--;
if(pila[tope]=='+' || pila[tope]=='-'){
jerarquia1=0;
}
if(pila[tope]=='*' || pila[tope]=='/'){
jerarquia1=1;
}
if(pila[tope]=='^'){
jerarquia1=2;
}
}
tope++;
pila[tope]=sim;
}
if(tope==0 || pila[tope]=='('){
tope++;
pila[tope]=sim;
}
}
}
while(tope>0){
epos[f]=pila[tope]; f++; tope--;
}
gotoxy(5,7);cout<<" Expresion Posfija : ";
for(i=0;i<f;i++){
cout<<epos[i];}
gotoxy(5,9);cout<<"Alumno: Samuel Elias grupo 2-2 escuela de informatica C.";
getch();
}