Data Structures and Algorithms in C++ - Michael T. Goodrich, Roberto Tamassia, David M. Mount

Data Structures and Algorithms in C++

Buch | Softcover
744 Seiten
2011 | 2 Rev ed
John Wiley & Sons Ltd (Verlag)
978-0-470-38327-8 (ISBN)
210,74 inkl. MwSt
The 2/e offers an innovative approach to data structures and algorithms by incorporating the object-oriented design paradigm using C++. Takes highly visual approach and extensive suite of Web-based learning giving students the opportunity to see visual justifications of key analytic concepts.
An updated, innovative approach to data structures and algorithms Written by an author team of experts in their fields, this authoritative guide demystifies even the most difficult mathematical concepts so that you can gain a clear understanding of data structures and algorithms in C++. The unparalleled author team incorporates the object-oriented design paradigm using C++ as the implementation language, while also providing intuition and analysis of fundamental algorithms. Offers a unique multimedia format for learning the fundamentals of data structures and algorithms Allows you to visualize key analytic concepts, learn about the most recent insights in the field, and do data structure design Provides clear approaches for developing programs Features a clear, easy-to-understand writing style that breaks down even the most difficult mathematical concepts Building on the success of the first edition, this new version offers you an innovative approach to fundamental data structures and algorithms.

Michael Goodrich received his Ph.D. in computer science from Purdue University in 1987. He is currently a professor in the Department of Computer Science at University of California, Irvine. Previously, he was a professor at Johns Hopkins University. He is an editor for the International Journal of Computational Geometry & Applications and Journal of Graph Algorithms and Applications. Roberto Tamassia received his Ph.D. in Electrical and Computer Engineering from the University of Illinois at Urbana-Champaign in 1988. He is currently a professor in the Department of Computer Science at Brown University. He is editor-in-chief for the Journal of Graph Algorithms and Applications and an editor for Computational Geometry: Theory and Applications. He previously served on the editorial board of IEEE Transactions on Computers.

1. A C++ Primer. 1.1 Basic C++ Programming Elements. 1.2 Expressions. 1.3 Control Flow. 1.4 Functions. 1.5 Classes. 1.6 C++ Program and File Organization. 1.7 Writing a C++ Program. 1.8 Exercises. 2. Object-Oriented Design. 2.1 Goals, Principles, and Patterns. 2.2 Inheritance and Polymorphism. 2.3 Templates. 2.4 Exceptions. 2.5 Exercises. 3. Arrays, Linked Lists, and Recursion. 3.1 Using Arrays. 3.2 Singly Linked Lists. 3.3 Doubly Linked Lists. 3.4 Circularly Linked and List Reversal. 3.5 Recursion. 3.6 Exercises. 4. Analysis Tools. 4.1 The Seven Functions Used in This Book. 4.2 Analysis of Algorithms. 4.3 Simple Justification Techniques. 4.4 Exercises. 5. Stacks, Queues, and Deques. 5.1 Stacks. 5.2 Queues. 5.3 Double-Ended Queues. 5.4 Exercises. 6. List and Iterator ADTs. 6.1 Vectors. 6.2 Lists. 6.3 Sequences. 6.4 Case Study: Bubble-Sort on a Sequence. 6.5 Exercises. 7. Trees. 7.1 General Trees. 7.2 Tree Traversal Algorithms. 7.3 Binary Trees. 7.4 Exercises. 8. Heaps and Priority Queues. 8.1 The Priority Queue Abstract Data Type. 8.2 Implementing a Priority Queue with a List. 8.3 Heaps. 8.4 Adaptable Priority Queues. 8.5 Exercises. 9. Hash Tables, Maps, and Skip Lists. 9.1 Maps. 9.2 Hash Tables. 9.3 Ordered Maps. 9.4 Skip Lists. 9.5 Dictionaries. 9.6 Exercises. 10. Search Trees. 10.1 Binary Search Trees. 10.2 AVL Trees. 10.3 Splay Trees. 10.4 (2,4) Trees. 10.5 Red-Black Trees. 10.6 Exercises. 11. Sorting, Sets, and Selection. 11.1 Merge-Sort. 11.2 Quick-Sort. 11.3 Studying Sorting through and Algorithmic Lens. 11.4 Sets and Union/Find Structures. 11.5 Selection. 11.6 Exercises. 12. Strings and Dynamic Programming. 12.1 String Operations. 12.2 Dynamic Programming. 12.3 Pattern Matching Algorithms. 12.4 Text Compression and the Greedy Method. 12.5 Tries. 12.6 Exercises. 13. Graph Algorithms. 13.1 Graphs. 13.2 Data Structures for Graphs. 13.3 Graph Traversals. 13.4 Directed Graphs. 13.5 Shortest Paths. 13.6 Minimum Spanning Trees. 13.7 Exercises. 14. Memory Management and B-Trees. 14.1 Memory Management. 14.2 External Memory and Caching. 14.3 External Searching and B-Trees. 14.4 External-Memory Sorting. 14.5 Exercises. A Useful Mathematical Facts. Bibliography. Index.

Erscheint lt. Verlag 18.3.2011
Zusatzinfo Illustrations
Verlagsort Chichester
Sprache englisch
Maße 192 x 234 mm
Gewicht 1032 g
Themenwelt Mathematik / Informatik Informatik Programmiersprachen / -werkzeuge
Informatik Software Entwicklung Objektorientierung
ISBN-10 0-470-38327-5 / 0470383275
ISBN-13 978-0-470-38327-8 / 9780470383278
Zustand Neuware
Haben Sie eine Frage zum Produkt?
Mehr entdecken
aus dem Bereich
objektorientierte Entwicklung modularer Maschinen für die digitale …

von Thomas Schmertosch; Markus Krabbes; Christian Zinke-Wehlmann

Buch | Hardcover (2024)
Hanser (Verlag)
44,99
Entwicklung von GUIs für verschiedene Betriebssysteme

von Achim Lingott

Buch (2023)
Hanser, Carl (Verlag)
39,99
Principles and Practice Using C++

von Bjarne Stroustrup

Buch | Softcover (2024)
Addison Wesley (Verlag)
85,95