內容簡介
本書是由計算機科學研究和教學的三位大師編寫的,主要闡釋了數據結構和算法兩大部分,內容包括數據結構的各種基本概念,如數組、列表、棧、佇列、映射、疊代、樹、有向圖與無向圖等,以及各種算法的概念與方法,如排序、搜尋、外存與內容管理等。對各種算法都給出了詳細的示例和插圖。本書出版20多年以來,仍然是國內外數據結構與算法課程中推薦使用最廣的教材,是一本經受了時間考驗的經典之作。本書概念講解清楚,邏輯性強,可作為相關課程的教材或參考書,也可供從事計算機工程的技術人員參考。
目錄
Chapter 1 Design and Analysis of Algorithms
1.1 From Problems to Programs
1.2 Abstract Data Types
1.3 Data Types,Data Structures,and Abstract Data Types
1.4 The Running Time of a Program
1.5 Calculating the Running Time of a Program
1.6 Good Programming Practice
1.7 Super Pascal
Chapter 2 Basic Data Types
2.1 The Data Type“List”
2.2 Implementation of Lists
2.3 Stacks
2.4 Queues
2.5 Mappings
2.6 Stacks and Recursive Procedures
Chapter 3 Trees
3.1 Basic Terminology
3.2 The ADT TREE
3.3 Implementations of Trees
3.4 Binary Trees
Chapter 4 Basic Operations on Sets
4.1 Introduction to Sets
4.2 An ADT with Union,Intersection,and Difference
4.3 A Bit-Vector Implementation of Sets
4.4 A Linked-List Implementation of Sets
4.5 The Dictiionary
4.6 Simple Dictionary Implementation
4.7 The Hash Table Data Structure
4.8 Estimating the Efficiency of Hash Functions
4.9 Implementation of the Mapping ADT
4.10 Priority Queues
4.11 Implementations of Priority Queues
4.12 Some Complex Set Structures
Chapter 5 Advanced Set Representation Methods
5.1 Binary Search Trees
5.2 Time Analysis of Binary Search Tree Operations
5.3 Tries
5.4 Balanced Tree Implementations of Sets
5.5 Sets with the MERGE and FIND Operations
5.6 An ADT with MERGE and SPLIT
Chapter 6 Directed Graphs
6.1 Basic Definitions
6.2 Representations for Directed Graphs
6.3 The Single-Source Shortest Paths Problem
6.4 The All-Pairs Shortest Path Problem
6.5 Traversals of Directed Graphs
6.6 Directed Acyclic Graphs
6.7 Strong Components
Chapter 7 Undirected Graphs
7.1 Definitions
7.2 Minimum-Cost Spaning Trees
7.3 Traversals
7.4 Articulation Points and Biconnected Components
7.5 Graph Matching
Chapter 8 Sorting
8.1 The Internal Sorting Model
8.2 Some Simple Sorting Schemes
8.3 Quicksort
8.4 Heapsort
8.5 Bin Sorting
8.6 A Lower Bound for Sorting by Comparisons
8.7 Order Statistics
Chapter 9 Algorithm Analysis Techniques
9.1 Efficiency of Algorithms
9.2 Analysis of Recursive Programs
9.3 Solving Recurrence Equations
9.4 A General Solution for a Large Class of Recurrences
Chapter 10 Algorithm Design Techniques
10.1 Divide-and-Conquer Algorithms
10.2 Dyamic Programming
10.3 Greedy Algorithms
10.4 Backtracking
10.5 Local Search Algorithms
Chapter 11 Data Structures and Algorithms for External Storage
11.1 A Model of External Computation
11.2 External Sorting
11.3 Storing Information in Files
11.4 External Search Trees
Chapter 12 Memory Management
12.1 The Issues in Memory Management
12.2 Managing Equal-Sized Blocks
12.3 Garbage Collection Algorithms for Equal-Sized Blocks
12.4 Storage Allocation for Objects with Mixed Sizes
12.5 Buddy Systems
12.6 Storage Compaction
Bibliography
Index