1. Recursive Functions and Data
    1. Integer Exponentiation
      1. ADV: identify other cases and work more efficiently
    2. Greatest Common Divisor(GCD)
      1. Eucid's Algorithm: gcd(132, 20) = gcd(20, 12)
    3. Directory Crawler
    4. Helper Methods
      1. 2-methods approach
      2. dividing the recursive method into a pub and pri
  2. CS: Prefix Evaluator
    1. Infix, prefix and postfix notation
      1. infix notation is the only notation need ()
    2. evaluating prefix expressions
  3. A better Example of recursion
    1. the sequence of the recursive case and the perform method is very important
      1. recursive case first: reverse
      2. perform method first: sequence
  4. Thinking Recursively
    1. basic
      1. Iteration
      2. Recursion
    2. A Nonprogramming Example
    3. An iterative solution converted to recursion
      1. recursive is like a person in the line
      2. hold the method. After each one
      3. finish the method in hand, we get the
      4. result
    4. Structure of Recursive Solution
      1. base case
        1. solved immediately
        2. like a end of loop
        3. at least one
      2. recursive case
        1. reduce problem to simpler problem
        2. solved by recursive call
        3. at least one
      3. if {base} else {recursive case}