Chapters 18, 19 Reading Assignment

Chapter 18 covers recursion, and Chapter 19 discusses binary search trees

 

Section 18.1 - Recursion

What is meant by the "depth of recursion"?

What is the difference between direct recursion and indirect recursion?

 

Section 18.2-18.6 - Recursive algorithms: factorials, gcd, Fibonacci, linked list operations, binary search

No questions here really.... just a comment. The important aspect of these sections is for you to become familiar with solving problems using recursion, rather than the specifics of these problems.

Try Programming Challenge 18.5 "Recursive Multiplication" on page 1162 of our textbook. Write a function (on paper, you don't have to do it in Visual C++ if you don't want to) to multiplication recursively.

Try Programming Challenge 18.8 "Ackerman's Function" also on page 1162 of our textbook.

 

Section 18.7 - Quicksort

Can you describe the two important steps in Quicksort: partition and the recursive calls to quicksort? Yes, this is a yes or no question.

 

Section 18.11 - Recursion vs. Iteration

Why is a solution that uses iteration generally faster than a recursive solution?

 


 

Section 19.1 - Binary trees

Define:

  • root node
  • leaf node
  • child
  • parent

What advantage does a Binary Search Tree have over linked lists or arrays in searching for data?

 

Section 19.2 - Binary tree operations

In what circumstances is the deletion or removal of a binary search tree node most difficult. Why?

Complete problems 19.16 - 19.19 on page 1187 in our textbook.