سلام یه برنامه دارم که Infix رو به Postfix تبدیل میکنه میخوام عوضش کنم طوری که Infix رو Prefix تبدیل کنه یه کم باهاش ور رفتم موفق نشدم ... کسی میتونه کمکم کنه و بگه کجاهاشو باید تغییر بدم ؟

اینم برنامه : (اگه درست خونده نمیشه کپی کنید توی Notepad)

فقط خیلی عجله دارم براش خواهشن سریعتر جوابمو بدین...


#include<iostream.h>
#include<conio.h>
#include<string.h>
int top;
char stack[200];
void push(char ch)
{ if ( top==200 )
cout<<"Overflow";
else
stack[top]=ch;
top++;
}
char pop()
{ if ( top>0 )
return stack[--top];
else
return ' ';
}
int Empty()
{ if ( top==0 )
return 1;
else
return 0;
}
main(){
top=0;
char s[100];
char o[100], ch;
for(int i=0;i<100;i++)
o[i]=0;
o['+']=1;
o['-']=1;
o['*']=2;
o['/']=2;
o['^']=3;

clrscr();
cin>>s;
for( i=0;i<strlen(s);i++)
{
if( s[i]>='0' && s[i]<='9' || s[i]>='a' && s[i]<='z' ||
s[i]>='A' && s[i]<='Z' )
cout<<s[i];
else if( s[i]=='(')
push( s[i] );
else if( s[i]==')')
{
ch=pop();
while(ch!='(')
{
cout<<ch;
ch=pop();
}
}
else if( s[i]=='+' || s[i]=='-'|| s[i]=='*'||
s[i]=='/'|| s[i]=='^')
{
if(Empty()==0)
{
ch=pop();
while( o[s[i]] <= o[ch] && ch!='(' )
{
cout<<ch;
ch=pop();
}
push(ch);
}
push( s[i] );
}
}
while(Empty()==0)
cout<<pop();
getch();
}