To the OP and perhaps others, it may be useful to consider this:
Even humans essentially turn expressions into RPN when they go about evaluating them.
Consider the expression ((5 + 8) * 9 + (53 + 19)/(4 * 6))/8. Go ahead and calculate the result by hand. How did you go about doing so?
Well, you probably did something like this:
First, you took 5 and 8, and added them, to get an intermediate result; let’s call it X.
Then you took X and 9, and multiplied them, to get an intermediate result; let’s call it Y.
Then you took 53 and 19, and added them, to get an intermediate result; let’s call it Z.
Then you took 4 and 6, and multiplied them, to get an intermediate result; let’s call it A.
Then you took Z and A, and divided, to get an intermediate result; let’s call it B.
Then you took Y and B, and added them, to get an intermediate result; let’s call it C.
Finally, you took C and 8 and divided, to end up with the final result for the overall expression.
Which is exactly the series of instructions the RPN translation of the expression amounts to [well, except for the cleverness in RPN of not bothering to name or explicitly refer to the intermediate results]. If you just read off every argument and operation above, except for the names of the intermediate results, you’ll get:
5, 8, add, 9, multiply, 53, 19, add, 4, 6, multiply, divide, add, 8, divide.
So RPN is what you’re doing already*; you just might not be paying attention to it.
[*: Unless you have a bunch of friends willing to help you work out different parts of an expression in parallel… Then serialization is a red herring, and there’s no substitute for the expression tree itself, in all its nonlinearly structured glory]