12.07.2015 Views

A Practical Introduction to Data Structures and Algorithm Analysis

A Practical Introduction to Data Structures and Algorithm Analysis

A Practical Introduction to Data Structures and Algorithm Analysis

SHOW MORE
SHOW LESS
  • No tags were found...

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

xviiiPrefaceOne of the most important aspects of a course in data structures is that it iswhere students really learn <strong>to</strong> program using pointers <strong>and</strong> dynamic memory allocation,by implementing data structures such as linked lists <strong>and</strong> trees. Its also wherestudents truly learn recursion. In our curriculum, this is the first course wherestudents do significant design, because it often requires real data structures <strong>to</strong> motivatesignificant design exercises. Finally, the fundamental differences betweenmemory-based <strong>and</strong> disk-based data access cannot be appreciated without practicalprogramming experience. For all of these reasons, a data structures course cannotsucceed without a significant programming component. In our department, the datastructures course is arguably the most difficult programming course in the curriculum.Students should also work problems <strong>to</strong> develop their analytical abilities. I provideover 400 exercises <strong>and</strong> suggestions for programming projects. I urge readers<strong>to</strong> take advantage of them.Contacting the Author <strong>and</strong> Supplementary Materials: A book such as thisis sure <strong>to</strong> contain errors <strong>and</strong> have room for improvement. I welcome bug reports<strong>and</strong> constructive criticism. I can be reached by electronic mail via the Internet atshaffer@vt.edu. Alternatively, comments can be mailed <strong>to</strong>Cliff ShafferDepartment of Computer ScienceVirginia TechBlacksburg, VA 24061A set of lecture notes for use in conjunction with this book can be obtainedat http://www.cs.vt.edu/˜shaffer/book.html. All code examplesused in the book are also available at this site. Online Web pages for VirginiaTech’s sophomore-level data structures class can be found at URLhttp://courses.cs.vt.edu/˜cs3114This book was originally typeset by the author with L A TEX. The bibliographywas prepared using BIBT E X. The index was prepared using makeindex. Thefigures were mostly drawn with Xfig. Figures 3.1 <strong>and</strong> 9.8 were partially createdusing Mathematica.Acknowledgments: It takes a lot of help from a lot of people <strong>to</strong> make a book.I wish <strong>to</strong> acknowledge a few of those who helped <strong>to</strong> make this book possible. Iapologize for the inevitable omissions.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!