|
| Login | Sign up | My Wish List |
![]() | Data Structures and Problem Solving Using C++ (2nd Edition) by Mark Allen Weiss ISBN-10: 020161250X ISBN-10: 0-201-61250-X ISBN-13: 9780201612509 ISBN-13: 978-0-201-61250-9 Hardcover 1999-12-03 Addison Wesley Find Lowest Price | |
Editorials | ||
Book Description Data Structures and Problem Solving Using C++ provides an introduction to data structures and algorithms from the viewpoint of abstract thinking and problem solving, as well as the use of C++. It is a complete revision of Weiss' successful CS2 book Algorithms, Data Structures, and Problem Solving with C++. Throughout this edition, Mark Allen Weiss has included the latest features of the C++ programming language-making prevalent use of the Standard Template Library (STL) wherever appropriate. He has also included a new chapter covering Patterns, as well as new material on templates, vectors and push_back. C++ allows the programmer to write the interface and implementation separately, to place them in separate files and compile separately, and to hide the implementation details. This book goes a step further: The interface and implementation are discussed in separate parts of the book. Part I (Objects and C++), Part II (Algorithms and Building Blocks), and Part III (Applications) lay the groundwork by discussing basic concepts and tools and providing some practical examples, but implementation of data structures are not shown until Part IV (Implementations). This separation of interface and implementation promotes abstract thinking. Class interfaces are written and used before the implementation is known, forcing the reader to think about the functionality and potential efficiency of the various data structures (e.g. hash tables are written well before the hash table is implemented). | ||
Reviews | ||
One of the best books for Data Structures for C++ This is one of the best Data Structure books I have ever read. A Data Stuctures course is usually a second or third course in learning any programming lanaguages and it is where you actually learn why we do some things in C++ the way we do them. This book has done a great job giving a through explanation of what one might need to know about a lot of fundamental and practical issues in programming with C++! If I could, I'd give it 10-stars instead of 5-stars!! | ||
Great C++ refresher for professionals Although I did not read much of the content about data structures, I can say that the other half of the book is great for those in the field that have studied these topics previously. The concise lists of C++ gotchas are worth the price alone. Many of the topics from the Meyers' 'Effective C++' series are touched on (much more briefly) here. There's also a short chapter that very briefly highlights some major design patterns. I was pleasantly surprised to even find descriptions of pointer arithmetic efficiency in an appendix! This book really had exactly the scope I was looking for while job hunting; it's broad and concise. I gave it 4 instead of 5 stars because it might be too difficult for someone just starting out to follow and because its STL coverage is a little out of date and thin. | ||
First, determine the teaching method that will be used... Today is Nov 10, 2005. I e-mailed Professor Weiss concerning his book on Nov 7, he responded promptly on Nov 8. His advice was very valuable. In a nutshell he advised me that online students using his text (or any text for that matter) may find the subject difficult to negotiate (if they are new to the material) and that a traditional classroom is preferred for getting the most learning out of a Data Structures and Algorithm Analysis course. As a result of his advice I researched teaching methods in general and discovered several additional sources supporting his remarks. Don't rely soley on my interpretation of Prof Weiss'observation...you have to check this out for yourself. | ||
Lots of interesting topics but poor explanation This book was required for a data structures and algorithms class. At first it seemed interesting. By looking at the table of contents, lots of topics were covered. But the problem is that each chapter lacks a good introduction context or example. That is, when you dont know anything about hash tables or binary trees, this book starts by telling you what are the rules and types of binary trees or hash tables, but does not tell you really why they exist or how can it be useful in the first place. But the most frustrating part is the examples after each chapter that does include any answers, it is nearly useless. Please excuse me for my poor english, it is not my primary languange. | ||
Bright academic tries in vain to write textbook. I am writing this review of Data Structures and Problem Solving Using C++ by Mark Allen Weiss on the heels of completing an undergraduate course in data structures. On a scale of 5 ( being the best ) and 1 ( being the worst), I would rate this text at a 2. I am being generous because I don't want to underestimate the possibility of this book having some future usefullness. Mr. Weiss has an impressive academic record. With a PhD from Princeton in Computer Science and having studied under Dr. Sedgewick, a king of algorithms, he now teaches at Florida International University. Clearly, he is an authority on the subject. However, he should pursue something other than writing textbooks. Let's examine the flaws in his approach. The author works heartily to impress you with his ability to demonstrate proofs for algorithms. He illustrates various proofs throughout the text and gives a liberal discussion of each. He then provides implementations of each algorithm and spends considerable time discussing the C++ language statements that are used. What he never does adequately is to provide a discussion of data structures and algorithms absent the details which distract the reader of an introductory text. As a point of comparison and constrast, I ask you to consult Data Structures with C++ using STL by William Ford/William Topp. Consider the study of stacks and how compilers utilize them to evaluate expressions. This is a subject taught in every data structures class. Let's examine the approaches of Weiss and Ford/Topp. Pages devoted to the topic. Weiss ( 38 ) vs Ford/Topp ( 45 ) From the brief analysis above, you may recognize a pattern that Dr. Weiss himself admits to following in the writing of his book. In the preface, he says that "fundamental choices need to be made including ... level of mathematical rigor, balance between implementation of data structures and their use ... and programming details related to language chosen ". Regrettably Dr. Weiss has made poor choices on all three areas. First, the mathematical rigor which might be highly valued in a graduate level text is seen here as a mere annoyance. Second, the balance between implementation and their use is skewed toward the former when it is needed toward the latter. Finally, students who have had adequate instruction in C++ do not need to be led by the hand as the author guides the reader through an implementation. Too many other authors do a much better job with C++ than Dr. Weiss ( read Schildt, Meyers, many more ). Dr. Weiss would be well advised to keep the code examples in play but cut out the narratives on the code. I was able to do well in my class because I recognized the deficiencies in Dr. Weiss' book and quickly abandoned it in favor of the Topp/Ford text. On a final note of disappointment, the binding of this book, purchased brand new, failed after just two weeks. I treat my books with respect and in the last twenty years have had only one other occasion of a binding failure ( the pages separate from the web and glue that holds everything together ). My bookseller replaced the text without question. You will probably be required to buy this book for your data structures class ( as I was ). It is a sad waste of money but many faculty remain impressed with Dr. Weiss' output. I recommend buying a used version ( absent the broken bindings ) and gettinf another readable text from a different author. To be fair, I did give this book a 2 rather than a 1 ( worst ) on a scale of 1 to 5. Since I am planning graduate study in computer science, I believe that the book might hold some value as a reference for the very items that I criticize here. That is, the proofs might be of some interest in a advanced data structures or advanced algorithms course. | ||