@startuml title Dijkstra's Two Stack Algorithm start :Initialize two stacks: OperandStack and OperatorStack; :Scan expression from left to right; repeat :Check current symbol; if (Is Operand?) then (yes) :Push to OperandStack; else (no) if (Is Operator?) then (yes) :Push to OperatorStack; else (no) if (Is Left Parenthesis?) then (yes) :Ignore; else (no) if (Is Right Parenthesis?) then (yes) :Pop Operator from OperatorStack; :Pop two Operands from OperandStack; :Apply Operator to the two Operands; :Push result to OperandStack; endif endif endif endif @enduml