My book the The Recursion Sutras has been ranked among the best Books on Data Structures of all time by BookAuthority.
The relevant links are
Most Software Engineers would remember their introduction to Recursion. The first impression is usually disorienting. Problems get solved without actually being solved. This happens while learning Quicksort and then Mergesort. These are based on Recursion and the other implementation is by using stacks which requires still more programming. The real encounter comes when you try solving problems like the Towers of Hanoi, Eight Queens Problem etc. The problems get solved perfectly even if it doesn’t actually feel like you’re solving it. Exciting, sinister, like it or love it but Recursion is the only way of solving those problems. Even if we were to use a stack, we would first design a Recursive solution and then remove the Recursion mechanically. Not necessary, because the compiler does the same. Recursion finds application in advanced fields of Computer Programming. 1. Look ahead in strategy games like Chess is implemented via Recursion. 2. Regular Expressions, where you search text based on patterns is always implemented by Recursion. 3. Many optimization and combinatorial problems like Dynamic Programming, Eight Queens Problem, solving a maze etc require Recursive formulations. In short, a deep understanding of Recursion helps in a Software Development Career. This book takes you deep into Recursion. We solve the basic problems of Data Structures recursively. This book doesn’t use a single iterative loop, and we solve every type of problem. Take a look at the table of contents. DEFINING RECURSION THE INTEGER AS A RECURSIVE DATA STRUCTURES SUMMATION OF SERIES. PERMUTATIONS & COMBINATIONS. THE ARRAY AS A RECURSIVE DATA STRUCTURE THE LINKED LIST AS A RECURSIVE DATA STRUCTURE BINARY TREES AS RECURSIVE DATA STRUCTURES RECURSION AND FILES SOME INTERESTING PROBLEMS USING RECURSION SUMMING UP Writing this book has been an engrossing task. Selecting problems, designing solutions , programming and testing has been particularly stimulating. Should have the same effects on the readers.
The book is available at