Ну могу подсказать одну из схем. Создаёшь словарь функций для каждого оператора. Создаёшь двумерный массив для приоритетов операторов. Разбиваешь строку на рабочий массив чисел и операторов. Обходишь массив приоритетов, в нём обходишь рабочий массив. Находишь оператор в текущей приоритетной группе - выполняешь соответствующую функцию, заменяешь три элемента в рабочем массиве на результат.
Ну хотя вот тут тебе уже написали то решение, что я хотел тебе предложить.