What sorts of algorithms would be used to do this (as in, this is a string, and I want to find the answer):
((5 + (3 + (7 * 2))) - (8 * 9)) / 72
Yes the algorithm is Shunting yard algorithm but if you want to implement I suggest you python and it's compiler package
import compiler
equation = "((5 + (3 + (7 * 2))) - (8 * 9)) / 72"
parsed = compiler.parse( equation )
print parsed
You can also evaluate this expression with built-in eval() method
print eval("5 + (4./3) * 9") // 17