# 22 - CMPSCI 187: Programming With Data Structures Lecture...

This preview shows pages 1–5. Sign up to view the full content.

CMPSCI 187: Programming With Data Structures Lecture #22: Introduction to Recursion 2 November 2011

This preview has intentionally blurred sections. Sign up to view the full version.

View Full Document
Introduction to Recursion • What is Recursion, and Why Recursion? • Ungrounded Recursion • The Factorial Function • Tracing Recursive Code: Computing Sums • Iterative Alternatives • Indirect Recursion
What is Recursion, and Why Recursion? • A method is recursive if it calls itself. A method can call any other method, and its own execution is suspended until (or unless) the new method Fnishes. • When more than one version of the same method is on the stack, they have separate contexts -- separate copies of local variables and parameters. None of them affect any of the others, except by Fnishing their execution. • Recursive code is often the cleanest and simplest way to solve a problem. • Many mathematical and computing concepts have recursive defnitions . ±or example, a stack is either empty, or is another stack with an element pushed onto it. A recursive algorithm can often be written directly from a recursive deFnition. This is a main theme of CMPSCI 250 -- the close connection between algorithm and deFnition makes it easier to prove correctness, often by mathematical induction.

This preview has intentionally blurred sections. Sign up to view the full version.

View Full Document
More Recursion Examples • “Hofstadter’s Law: It always takes longer than you expect, even when you take into account Hofstadter’s Law.” -- Douglas Hofstadter, in
This is the end of the preview. Sign up to access the rest of the document.

## This note was uploaded on 11/22/2011 for the course COMPSCI 187 taught by Professor Barrington during the Fall '11 term at UMass (Amherst).

### Page1 / 9

22 - CMPSCI 187: Programming With Data Structures Lecture...

This preview shows document pages 1 - 5. Sign up to view the full document.

View Full Document
Ask a homework question - tutors are online