Publisher: McGraw-Hill Education
Book website: http://www.sdba.info
©2009 McGraw-Hill Education (Asia) ISBN 978-0071271882
Purchase from Amazon.com
This book is about those foundational solutions. It describes how to structure data and build algorithms to solve common programming tasks. Some of these techniques have names that come from ordinary non-computer life - e.g. stacks, queues, and sorting - and others have names that might be completely unfamiliar to a new student of programming - e.g. recursion, backtracking, and arrays - but they are all standards in the programmer's tool chest. Occasionally, a new tool is discovered - or at least, refined - and we include one which was just discovered in 1999 - introspective sort. But most of them have been part of the standard programmer's tool chest for decades.
Unlike the majority of textbooks in this field, this book takes a "code-first" approach. After a brief introduction of the concepts, a short complete ANSI-C program is presented for students to analyze. A number of questions arising from the code are then posed and answered in the Socratic format. In this way, we hope that the reader will not only become fluent in the concepts but also in the "nuts and bolts" of translating these concepts into functioning, efficient standard C code. Variable-Pointer diagrams are developed and used extensively to aid understanding of the more complex data structures and their manipulation.
Ian Chai was born in Kuala Lumpur, Malaysia, and, like Professor White, has also since lived in many other places. Sent to boarding school in Singapore when he was 14, he received his Bachelor's Degree at the University of Kansas. After that, he worked in Ulm, Germany for a research institute - where he got baptised in the legendary blue Danube. Later, he worked as a technical consultant for the computer division of the Hartford Insurance Company in Connecticut, before finishing up a Ph.D. at the University of Illinois (Urbana-Champaign). Finally returning to Malaysia, he is now a lecturer in the Faculty of Engineering at the Cyberjaya campus of Multimedia University.