第1章 绪论 1
数据结构的概念 1
为什么要学习数据结构 2
有关概念和术语 5
数据结构课程的内容 7
抽象数据类型 8
数据类型 8
抽象数据类型的概念 8
算法和算法分析 9
算法特性 9
算法描述 9
算法性能分析与度量 10
第2章 数组 13
概述 13
声明数组 14
初始化数组 14
访问数组成员 15
数组是对象 16
对数组使用foreach 16
System.Array类简介 16
System.Collections.ArrayList类简介 18
数组的应用 21
第3章 链表 27
单链表 27
单链表上基本运算的实现 30
单链表的ArrayList实现 44
单链表的HashTable实现 49
单链表的StoredList实现 54
单链表应用举例 58
循环链表 61
双向链表 68
静态链表 75
第4章 栈、队列和哈希表 79
栈 79
栈的定义及基本操作 79
Stack类简介 80
栈的代码实现 81
栈的应用举例 86
队列 105
队列的定义及基本操作 105
Queue类简介 106
队列的代码实现 107
队列的应用举例 112
哈希表 114
哈希表的概念及作用 114
哈希表的构造方法 115
C#语言中哈希表的操作 116
第5章 二叉树 120
定义与性质 120
二叉树的基本概念 120
二叉树的主要性质 122
基本操作与存储实现 123
搜索二叉树 127
二叉树的遍历 131
二叉树的应用 133
第6章 树 136
概念与表示 136
树的定义及相关术语 136
树的表示 138
基本操作与存储 138
树的基本操作 138
树的存储结构 139
树、森林与二叉树的转换 142
树转换为二叉树 143
森林转换为二叉树 143
二叉树转换为树和森林 144
树和森林的遍历 145
树的遍历 145
森林的遍历 146
树的应用 146
判定树 146
集合的表示 147
关系等价求等价类问题 149
第7章 图 151
基本概念 151
图的存储表示 154
邻接矩阵 154
邻接表 155
图的遍历 159
深度优先搜索 159
广度优先搜索 161
图的连通性 162
无向图的连通性 162
有向图的连通性 163
生成树和生成森林 164
最小生成树 165
最小生成树的基本概念 165
构造最小生成树的Prim算法 166
构造最小生成树的Kruskal算法 169
最短路径 170
有向无环图及其应用 174
有向无环图的概念 174
AOV网与拓扑排序 175
第8章 查找 180
基本概念与术语 180
静态查找表 182
静态查找表的结构 182
顺序查找 183
有序表的折半查找 186
有序表的插值查找和斐波那契查找 191
分块查找 192
动态查找表 193
二叉排序树 193
平衡二叉树 202
B-树和B+树 218
哈希表查找(杂凑法) 224
哈希表与哈希方法 224
常用的哈希函数 224
处理冲突的方法 226
哈希表的查找分析 228
第9章 排序 230
基本概念 230
插入排序 231
直接插入排序 231
折半插入排序 233
希尔排序 234
交换排序 236
冒泡排序 236
快速排序 237
选择排序 240
简单选择排序 240
树形选择排序 241
附录 243
最小生成树及相关代码 243
图的遍历及相关代码 249
参考文献 255