In Data Structures and Algorithms in C++, Second Edition, Adam Drozdek has successfully created a textbook that makes the subject accessible to students who are new to data strctures, while providing and appealing scope of material for more advanced students.
作者簡介
暫缺《數(shù)據(jù)結(jié)構(gòu)與算法:C++版》作者簡介
圖書目錄
Chapter 1 Object-Oriented Programming Using C++ 1.1 Abstract Data Types 1.2 Encapsulation 1.3 Inheritance 1.4 Pointers 1.5 Polymorphism 1.6 C++ and Object-Oriented Programming 1.7 The Standard Template Library 1.8 Vectors in the Standard Template Library 1.9 Data Structures and Object-Oriented Programming 1.10 Case Study: Random Access File 1.11 Exercises 1.12 Programming Assignments Chapter 2 Complexity Analysis 2.1 Computational and Asymptotic Complexity 2.2 Big-O Notation 2.3 Properties of Big-O Notation 2.4 Ω and Θ Notations 2.5 Possible Problems 2.6 Examples of complexities 2.7 Finding Asymptotic Complexity: Examples 2.8 the Best, Average, and Worst Cases 2.9 Amortized Complexity 2.10 Exercises Chapter 3 Llinked Lis+s 3.1 Singly linked Lists 3.2 Doubyly linked Lists 3.3 Circular Lists 3.4 Skip Lists 3.5 Self-Organizing Lists 3.6 Sparse Tables 3.7 Lists in the Standard Template Library 3.8 Deques in the Standard Template Library 3.9 Concluding Remarks 3.10 Case Study: A Library 3.11 Exercises 3.12 Programming Assignements Chapter 4 Stacks and Queues 4.1 Stacks 4.2 Queues 4.3 Priority Queues 4.4 Stacks in the Standard Template Library 4.5 Queues in the Standard Template Library 4.6 Priority Queues in the Standard Template Library 4.7 Case Study: Exiting a Maze 4.8 Exercises 4.9 Programming Assignments Chapter 5 Recursion 5.1 Recursive Definitions 5.2 Function Calls and REcursion Implementation 5.3 Anatomy of a Recursive Call 5.4 Tail Recursion 5.5 Nontail Recursion 5.6 Indirect recursion 5.7 Nested Recursion 5.8 Excessive Recursion 5.9 Backtracking 5.10 Concluding Remarks 5.11 Case Study: A Recursive Descent Interpreter 5.12 Exercises 5.13 Programming Assignments Chapter 6 Binary Tress 6.1 Trees, Bionary Trees, and Binary Search Trees 6.2 Implementing Binary Trees 6.3 Searching a Binary Search TRee 6.4 Tree Traversal 6.5 Insertion 6.6 Deletion 6.7 Balancing a Tree 6.8 Self-Adjusting TYrees 6.9 Heaps 6.10 Polish Notation and Expression Trees 6.11 Case Study: Computing Word Frequencies 6.12 Exercises 6.13 Programming Assignments Chapter 7 Multiway Trees 7.1 The Family of B-Trees 7.2 Tires 7.3 Concluding Remarks 7.4 Case Study: Spell Checker 7.5 Exercises 7.6 Programming Assignments Chapter 8 Graphs 8.1 Graph REpresentation 8.2 Graph Traversals 8.3 Shortest Path 8.4 Cycle Detection 8.5 Spanning Trees 8.6 Connectivity 8.7 Topological Sort 8.8 Networks 8.9 Matching 8.10 Eulerian and hamiltonian Graphs 8.11 Case Study: Distinct Representatives 8.12 Exercises 8.13 Programming Assignments Chapter 9 Sorting 9.1 Elementary Sorting Algorithmns 9.2 Decision Trees 9.3 Efficient Sorting Algorithms 9.4 Sorting in the Standard Template Library 9.5 Concluding Remarks 9.6 Case Stuidy: Adding Polynomials 9.7 Exercises 9.8 Programming Assignments Chapter 10 Hashing 10.1 Hash Functions 10.2 Collision Resolution 10.3 Deletion 10.4 Perfect Hash Functions 10.5 hash Functions for Extendible Files 10.6 Case Study: Hasing with Buckets 10.7 Exercises 10.8 Programming Assignments Chapter 11 Data Compression 11.1 Conditions for Data Compression 11.2 huffman Coding 11.3 Shannon-Fano Code 11.4 Run-Length Encoding 11.5 Ziv-Lempel Code 11.6 Case Study: Huffman Method with Run-Length Encoding 11.7 Exercises 11.8 Programming Assignments Chapter 12 Memory Management 12.1 The Sequential-Fit Methods 12.2 The Nonsequential-Fit Methods 12.3 Garbage Collection 12.4 Concluding REmarks 12.5 Case Study: An In-Place Garbage Collector 12.6 Exercises 12.7 Programming Assignments Appendix A Computing Big-O Appendix B Algorithms in the Standard Template Library