本书用C++语言描述和学习数据结构。\r\n 全书分为12章,基本覆盖了数据结构的各方面的知识,包括查找、排序、链表、堆栈、队列、递归、树以及图等。书中提供了相应的算法和程序实现,还有许多针对性很强的练习题。附录部分给出了常用的C++语言的知识,对读者进一步实现和应用本书知识提供帮助。全书的最后是部分习题的解答和术语表。\r\n 本书适合作为各高等院校计算机专业师生学习数据结构的教材,也可作为专业程序员学习数据结构的参考籍。\r\n
1 Introduction\r\n\r\n1-1 Pseudocode\r\n1-2 The Abstract Data Type\r\n1-3 A Model for an Abstract Data Type\r\n1-4 Algorithm Efficiency\r\n1-5 Summary\r\n1-6 Practice Sets\r\n\r\n2 Searching\r\n\r\n2-1 List Searches\r\n2-2 C++ Search Algorithms\r\n2-3 Hashed List Searches\r\n2-4 Collision Resolution\r\n2-5 Summary\r\n2-6 Practice Sets\r\n\r\n3 Linked Lists\r\n\r\n3-1 Linear List Concepts\r\n3-2 Linked List Concepts\r\n3-3 Linked List Algorithms\r\n3-4 Processing a Linked List\r\n3-5 List Applications\r\n3-6 Complex Linked List Structures\r\n3-7 Building a Linked List--C++ Implementation\r\n3-8 List Abstract Data Type--Linked List Implementation\r\n3-9 Summary\r\n3-10 Practice Sets\r\n\r\n4 Stacks\r\n\r\n4-1 Basic Stack Operations\r\n4-2 Stack Linked List Implementation\r\n4-3 Stack Applications\r\n4-4 Eight Queens Problem--C++ Implementation\r\n4-5 Stack Abstract Data Type Implementation\r\n4-6 Stack ADT-Array Implementation\r\n4-7 Summary\r\n4-8 Practice Sets\r\n\r\n5 Queues\r\n\r\n5-1 Queue Operations\r\n5-2 Queue Linked List Design\r\n5-3 Queuing Theory\r\n5-4 Queue Applications\r\n5-5 Categorizing Data--C++ Implementation\r\n5-6 Queue ADT--Linked List Implementation\r\n5-7 Queue ADT--Array Implementation\r\n5-8 Summary\r\n5-9 Practice Sets\r\n\r\n6 Recursion\r\n\r\n6-1 Factorial--A Case Study\r\n6-2 How Recursion Works \r\n6-3 Designing Recursive Algorithms\r\n6-4 Another Case Study--Fibonacci Numbers\r\n6-5 The Towers of Hanoi\r\n6-6 C++ Implementations of Recursion\r\n6-7 Summary\r\n6-8 Practice Sets\r\n\r\n7 Introduction to Trees\r\n\r\n7-1 Basic Tree Concepts\r\n7-2 Binary Trees\r\n7-3 Binary Tree Traversals\r\n7-4 Expression Trees\r\n7-5 General Trees\r\n7-6 Huffman Code\r\n7-7 Summary\r\n7-8 Practice Sets\r\n\r\n8 Search Trees\r\n\r\n8-1 Binary Search Trees\r\n8-2 AVL Trees\r\n8-3 AVL Tree Implementation\r\n8-4 AVL Abstract Data Type\r\n8-5 Summary\r\n8-6 Practice Sets\r\n\r\n9 Heaps\r\n\r\n9-1 Heap Definition\r\n9-2 Heap Structure\r\n9-3 Basic Heap Algorithms\r\n9-4 Heap Data Structure\r\n9-5 Heap Algorithms\r\n9-6 Heap Applications\r\n9-7 A Heap Program\r\n9-8 Summary\r\n9-9 Practice Sets\r\n\r\n10 Multiway Trees\r\n\r\n10-1 m-Way Search Trees\r\n10-2 B-Trees\r\n10-3 Simplified B-Trees\r\n10-4 B-Tree Variations\r\n10-5 Lexical Search Tree\r\n10-6 B-Tree Abstract Data Type\r\n10-7 Summary\r\n10-8 Practice Sets\r\n\r\n11 Advanced Sorting Concepts\r\n\r\n11-1 General Sort Concepts\r\n11-2 Insertion Sorts\r\n11-3 Selection Sorts\r\n11-4 Exchange Sorts\r\n11-5 Summary\r\n11-6 External Sorts\r\n11-7 Summary\r\n11-8 Practice Sets\r\n\r\n12 Graphs\r\n\r\n12-1 Terminology\r\n12-2 Operations\r\n12-3 Graph Storage Structures\r\n12-4 Graph Algorithms\r\n12-5 Networks\r\n12-6 Abstract Data Type\r\n12-7 Summary\r\n12-8 Practice Sets\r\n\r\nAppendixes