Computing Reviews
Today's Issue Hot Topics Search Browse Recommended My Account Log In
Review Help
Search
Advanced topics in C : core concepts in data structures
Kalicharan N., Apress, Berkeley, CA, 2013. 312 pp. Type: Book (978-1-430264-00-2)
Date Reviewed: Jan 24 2014

Those readers who have mastered the rudiments of C programming, either through self study or by taking a course for non-majors, and now wish to enhance their programming skills through the use of more sophisticated techniques will find this book useful. The author covers the C language implementation and the use of such standard data structures as stacks, queues, binary search trees, priority queues, and hash tables. Other topics include sorting (both efficient and inefficient), searching, recursion, random numbers, and file input and output. In addition, the author reviews some language topics, notably structs and pointers.

Each of these topics is well presented, generally beginning with a discussion of the importance of the data structure or technique at hand. Algorithms are described lucidly. The author provides many step-by-step traces of the operation of the algorithms. Finally, well-written C code is created and discussed. The writing style is inviting, readable, clear, and correct. Multiple examples are provided using the data structures and techniques as they are presented. Each chapter ends with thoughtful, interesting exercises.

On the other hand, this book is not as strong as it might be in addressing the theoretical underpinnings of the algorithms it teaches. The author generally states the time complexities of the algorithms he discusses, but does not derive them. He uses “big O” notation, but I could find no explanation of the meaning of O(f(n)). He does a good job of demonstrating that the algorithms work properly in the special cases he traces, but gives no formal proofs of correctness. The lack of this material does not necessarily detract from the utility of this text for casual programmers who want to add to their toolboxes. But it does eliminate this book from serious consideration as a textbook in a computer science curriculum.

I would like to have seen a few minor changes in the organization of the material. Recursion comes too late. If it were put first, then nearly every subsequent chapter could make use of it. Many students have trouble getting their heads wrapped around recursion, and the earlier they see it, the more practice they can get in using it. The position of the chapters on random numbers and files arguably interferes with the natural progress of sorting and searching, which begins with lists, works its way through binary search trees, and ends with hashing. On the other hand, many of the chapters stand on their own, and there is no reason readers could not vary the order in which they are read.

All in all, I would recommend this book to the beginning programmer who wants to learn some more sophisticated techniques. I might also recommend it to the computer science major who has completed a first course in programming, but wants to do some self-directed study before embarking upon a formal course in data structures and algorithms.

Reviewer:  Paul LaFollette Review #: CR141928 (1404-0245)
Bookmark and Share
  Reviewer Selected
 
 
C (D.3.2 ... )
 
 
Data Structures (E.1 )
 
Would you recommend this review?
yes
no
Other reviews under "C": Date
C (2nd ed.)
Schildt H., Osborne/McGraw-Hill, Berkeley, CA, 1990. Type: Book (9780078815386)
Jan 1 1992
C: a software engineering approach
Darnell P., Margolis P., Springer-Verlag New York, Inc., New York, NY, 1991. Type: Book (9780387973890)
Dec 1 1991
C for programmers
Ammeraal L., John Wiley & Sons, Inc., New York, NY, 1991. Type: Book (9780471928515)
Dec 1 1991
more...

E-Mail This Printer-Friendly
Send Your Comments
Contact Us
Reproduction in whole or in part without permission is prohibited.   Copyright 1999-2024 ThinkLoud®
Terms of Use
| Privacy Policy