The last post is about conversion of In-fix expression to Post-fix[^]. Now we are going to convert Post-fix to In-fix expression.
#include <iostream> #include <stdio.h> #include <string.h> using namespace std; class stacks { char stack[256][256], t; public: stacks() { t=-1; } void push(char str[256]) { strcpy(stack[++t], str); } char* top() { return stack[t]; } void pop() { t--; } void show() { cout<<"Postfix: "<<stack[0]; } }; int isOperator(char c) { if(c=='+'||c=='-'||c=='/'||c=='*') { return 1; } return 0; } int main() { stacks s; char str[256], *ptr, tmp[256]; cout<<"Enter string: "; cin>>str; ptr = str; while(*ptr!='\0') { if(isOperator(*ptr)) { char *a, *b; a = s.top(); s.pop(); b = s.top(); s.pop(); sprintf(tmp, "%s%c%s", b, *ptr, a); s.push(tmp); } else { sprintf(tmp, "%c", *ptr); s.push(tmp); } *ptr++; } s.show(); }