第1章绪论1

1.1初识数据结构和算法2

1.2数据结构2

1.3算法5

1.4算法复杂度6

小结18

第2章线性数据结构19

2.1顺序表(一维数组)19

2.2链表24

2.3æ ˆ47

2.4队列56

2.5串62

小结63

第3章非线性数据结构64

3.1树的概述64

3.2二叉树66

3.3平衡二叉查找树79

3.4红黑树84

3.5二叉堆92

3.6哈夫曼树98

3.7B树和B+树102

3.8图116

3.9散列表133

3.10稀疏数组138

小结141

第4章算法设计思维142

4.1递归算法142

4.2贪心算法148

4.3分治算法154

4.4动态规划算法157

4.5回溯算法163

小结174

第5章排序算法175

5.1排序算法概述175

5.2冒泡排序算法177

5.3选择排序算法182

5.4插入排序算法186

5.5快速排序算法190

5.6堆排序算法197

5.7希尔排序算法201

5.8归并排序算法205

5.9桶排序算法211

5.10计数排序算法214

5.11基数排序算法217

小结220

第6章查找算法222

6.1线性查找算法222

6.2二分查找算法225

6.3插值查找算法232

6.4斐波那契查找算法237

6.5哈希查找算法243

6.6分块查找算法247

6.7树表查找算法251

小结252

第7章字符串匹配算法253

7.1暴力匹配算法253

7.2KMP算法257

7.3BM算法265

7.4RK算法270

小结272

第8章最短路径算法和最小生成
树算法274

8.1弗洛伊德算法274

8.2迪杰斯特拉算法279

8.3普利姆算法283

8.4克鲁斯卡尔算法288

小结294


参考文献295