Recursion Keeping track of function calls Evaluation of expressions Reversing characters Servicing hardware interrupts Solving combinational problems using backtracking