Evaluate infix expression like (3+5)*8

The idea is to use 2 stacks
The trick is when the current operator's priority is not higher than
the one on the top of the stack. Always evaluate the stack top
Convert sorted array to balanced BST then print it out by level