Previous Lecture | lect15 Before Slides | lect15 Annotated Slides | Next Lecture |
Code from lecture
https://github.com/ucsb-cs16-s18-mirza/cs16-s18-lectures/tree/master/lec-15
Topics
- Thinking recursively about problems on sequences
- Recursion vs. iteration via examples: printing elements of an array in order and in reverse order, printing elements of a linked-list in order and in reverse order
- How do we know our recursive solution is correct? Proof by induction
- Is recursive better than iterative?
- Problems that have a naturally recursive solution
- Under the hood of recursive functions (how recursive functions use the stack)
- Helper functions
- Recursion on strings
-
Linked-list problems - freeing all nodes in a linked-list
- Deleting a single node in the linked-list (recursive)
- Deleting all nodes in the linked-list (highlight issues with dynamic memory management)