Для вычисления используется алгоритм сортировочной станции.shunting-yard algorithm - более подробное изложение, на английском. Ну и я бы вместо лесенки if'ов использовал switch. Можно вводить выражение с пробелами, можно без, они игнорируются. Оставил без изменения целочисленное деление, хотя