Recursion
1. What is recursion in computer science?
2. What is the purpose of a base case in a recursive function?
3. What is the main difference between recursive and iterative solutions?
4. For every recursive solution, there is a corresponding iterative solution?
5. What is the advantage of using recursion over iteration?
6. Which of the following is NOT a characteristic of recursion?
7. In a recursive function, what happens when the base case is not reached?
8. How can we avoid a stack overflow error in a recursive function?
9. Can recursion be used to solve dynamic programming problems?
10. How do we determine the optimal depth of recursion in a recursive function?
11. Can recursion be used to solve problems with multiple correct solutions?
12. What is the main advantage of using recursion over iteration in some cases?
13. What is the purpose of a recursive function's 'stack'?
14. Recursion can be a powerful tool in algorithm design. When would you choose to implement an iterative solution instead of a recursive one?
15. In recursive algorithms, what is meant by 'tail recursion'?
16. How can you optimize a recursive function to reduce the overhead of function calls?
17. What is the time complexity of a recursive function that makes n recursive call, assuming each recursive call takes O(1) time?
18. What is the concept of 'tree recursion'?
19. In the context of recursion, what is 'tail call optimization,' and why is it important?
20. Explain the concept of 'mutual recursion' in programming and provide an example scenario where it might be applied.