#include "/home/nfs/breynol1/comp465/Stack.hpp" #include void postfix(unsigned char *ifix, unsigned char *pfix) { int x(0); Stack stk; std::map m; m['!'] = 3, m['*'] = 2, m['+'] = 1, m['('] = 0; char tr[6] = "+*!()"; for(int i(0); ifix[i] != 255; ++i) if(ifix[i] < 250) pfix[x++] = ifix[i]; else if(tr[ifix[i]-250] == '(') stk.push(ifix[i]); else if(tr[ifix[i]-250] == ')') { while(tr[stk.top()-250] != '(') pfix[x++] = stk.pop(); stk.pop(); } else { while(!stk.empty() && m[ifix[i]] <= m[stk.top()]) pfix[x++] = stk.pop(); stk.push(ifix[i]); } while(!stk.empty()) pfix[x++] = stk.pop(); pfix[x] = 255; }