Structuring Data and Building Algorithms
Ian Chai & Jonathon White

Publisher: McGraw-Hill Education
Book website:
©2009 McGraw-Hill Education (Asia) ISBN 978-0071271882
Purchase from

The famous mathematician, physicist, theologian, and philosopher Sir Isaac Newton (1642-1727) once wrote, "If I have seen further [than certain other people], it is by standing on the shoulders of giants." This is very true in computer programming as well. Imagine if all programmers had to rediscover for themselves by trial and error how to solve common problems in programming! It is much better to learn the solutions that programmers have already discovered and build upon that foundation.

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.

The Authors

Jonathon David White was born in Oakville, Canada but has since lived in many other countries. Even during his undergraduate days at McMaster University, he already had a cosmopolitan outlook on life, being active in the Malaysian-Singaporean Christian Fellowship. After obtaining his Ph.D., also from McMaster University, he worked and taught in China, and Japan, and Taiwan - where he met and married Wu Xiuman. They have one daughter, Charity Grace (Aien). Jon is now teaching at Yuan Ze University, Taiwan.

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.