Pseudo-code:
string input = ReadInput();
Stack<string> stack;
foreach(string token in GetTokens(input)) {
if (IsOperator(token)) {
string a = stack.Pop();
string b = stack.Pop();
stack.Push("(" + b + token + a + ")");
} else {
stack.Push(token);
}
}
print(stack.Pop());
No error handling shown above, i.e. garbage-in→garbage-out.
Conversion into C++ is left to you as exercise.
Good Luck!
Andi