资源说明:将数据结构与C#语言和.NET框架结合是本书的一大特点。本书分为8章,第1章介绍了数据结构和算法的基本概念及本书用到的数学和C#的知识;第2章至第6章分别讨论了线性表、栈和队列、串和数组、树型结构和图结构等常用的数据结构及其应用,以及在.NET框架中相应的数据结构;第7、8两章分别讨论了排序和查找常用的各种方法及其应用以及在.NET框架中相应的算法。
第1章绪论...........................................................................................................................1
1.1 数据结构...................................................................................................................1
1.1.1 学习数据结构的必要性...................................................................................1
1.1.2 基本概念和术语...............................................................................................1
1.2 算法...........................................................................................................................4
1.2.1算法的特性............................................................................................................4
1.2.2算法的评价标准....................................................................................................5
1.2.3算法的时间复杂度................................................................................................6
1.3 数学预备知识...........................................................................................................7
1.3.1 集合...................................................................................................................7
1.3.2 常用的数学术语...............................................................................................8
1.3.3 对数...................................................................................................................8
1.3.4 递归...................................................................................................................9
1.4 C#预备知识.............................................................................................................10
1.4.1 接口.................................................................................................................10
1.4.2 泛型编程.........................................................................................................13
本章小结................................................................................................................................20
习题一....................................................................................................................................20
第2章线性表.....................................................................................................................22
2.1 线性表的逻辑结构.........................................................................................................22
2.1.1 线性表的定义.....................................................................................................22
2.1.2 线性表的基本操作.............................................................................................22
2.2 顺序表.............................................................................................................................24
2.2.1 顺序表的定义.....................................................................................................24
2.2.2 顺序表的基本操作实现.....................................................................................29
2.2.3 顺序表应用举例.................................................................................................35
2.3 单链表.............................................................................................................................38
2.3.1 单链表的定义.....................................................................................................39
2.3.2 单链表的基本操作实现.....................................................................................46
2.3.3 单链表应用举例.................................................................................................56
2.4 其他链表.........................................................................................................................61
2.4.1 双向链表.............................................................................................................61
2.4.2循环链表..............................................................................................................64
2.5 C#中的线性表.................................................................................................................64
本章小结................................................................................................................................67
习题二....................................................................................................................................67
第3章栈和队列.................................................................................................................69
3.1 栈....................................................................................................................................69
3.1.1 栈的定义及基本运算.........................................................................................69
3.1.2 栈的存储和运算实现.........................................................................................70
3.1.3 栈的应用举例.....................................................................................................82
3.1.4 C#中的栈.............................................................................................................87
3.2 队列................................................................................................................................87
3.2.1队列的定义及基本运算......................................................................................87
数据结构(C#语言版)
目录 II
3.2.2 队列的存储和运算实现.....................................................................................89
3.2.3 队列的应用举例...............................................................................................103
3.2.4 C# 中的队列.....................................................................................................104
本章小结...............................................................................................................................105
习题三..................................................................................................................................105
第4章串和数组...............................................................................................................106
4.1 串..................................................................................................................................106
4.1.1 串的基本概念...................................................................................................106
4.1.2 串的存储及类定义...........................................................................................106
4.1.3 串的基本操作的实现.......................................................................................111
4.1.4 C#中的串...........................................................................................................115
4.2 数组...............................................................................................................................117
4.2.1 数组的逻辑结构...............................................................................................117
4.2.2 数组的内存映象...............................................................................................118
4.2.3 C#中的数组.......................................................................................................119
本章小结...............................................................................................................................121
习题四..................................................................................................................................121
第5章树和二叉树...........................................................................................................123
5.1 树..................................................................................................................................123
5.1.1 树的定义...........................................................................................................123
5.1.2 树的相关术语...................................................................................................124
5.1.3 树的逻辑表示...................................................................................................125
5.1.4 树的基本操作...................................................................................................126
5.2 二叉树...........................................................................................................................126
5.2.1 二叉树的定义...................................................................................................127
5.2.2 二叉树的性质...................................................................................................128
5.2.3 二叉树的存储结构...........................................................................................129
5.2.4二叉链表存储结构的类实现............................................................................132
5.2.5 二叉树的遍历...................................................................................................137
5.3 树与森林.......................................................................................................................141
5.3.2 树、森林与二叉树的转换...............................................................................144
5.3.3 树和森林的遍历...............................................................................................147
5.4哈夫曼树........................................................................................................................147
5.4.1哈夫曼树的基本概念........................................................................................147
5.4.2哈夫曼树类的实现............................................................................................149
5.4.3哈夫曼编码........................................................................................................153
5.5 应用举例...............................................................................................................154
5.6 C#中的树...............................................................................................................157
本章小结...............................................................................................................................158
习题五..................................................................................................................................159
第6章图...........................................................................................................................161
6.1 图的基本概念................................................................................................................161
6.1.1 图的定义.............................................................................................................161
6.1.2 图的基本术语...................................................................................................161
数据结构(C#语言版)
目录 III
6.1.3 图的基本操作...................................................................................................165
6.2 图的存储结构...............................................................................................................166
6.2.1邻接矩阵............................................................................................................167
6.2.2 邻接表...............................................................................................................172
6.3 图的遍历.......................................................................................................................185
6.3.1 深度优先遍历...................................................................................................185
6.3.2 广度优先遍历...................................................................................................188
6.4 图的应用.......................................................................................................................189
6.4.1 最小生成树.......................................................................................................189
6.4.2 最短路径...........................................................................................................199
6.4.3 拓扑排序...........................................................................................................207
本章小结...............................................................................................................................210
习题六..................................................................................................................................210
第7章排序.......................................................................................................................213
7.1 基本概念.......................................................................................................................213
7.2 简单排序方法...............................................................................................................214
7.2.1 直接插入排序...................................................................................................214
7.2.2 冒泡排序...........................................................................................................216
7.2.3 简单选择排序...................................................................................................217
7.3 快速排序.......................................................................................................................219
7.4 堆排序...........................................................................................................................222
7.5 归并排序.......................................................................................................................230
7.6 基数排序.......................................................................................................................232
7.6.1 多关键码排序...................................................................................................232
7.6.2 链式基数排序...................................................................................................233
7.7 各种排序方法的比较与讨论.......................................................................................235
7.8 C#中排序方法...............................................................................................................235
本章小结...............................................................................................................................236
习题七..................................................................................................................................236
第8章查找.......................................................................................................................238
8.1 基本概念和术语............................................................................................................238
8.2 静态查找表...................................................................................................................238
8.2.1 顺序查找...........................................................................................................238
8.2.2 有序表的折半查找...........................................................................................239
8.2.3 索引查找...........................................................................................................242
8.3 动态查找表...................................................................................................................243
8.4 哈希表...........................................................................................................................252
8.4.1 哈希表的基本概念...........................................................................................252
8.4.2 常用的哈希函数构造方法...............................................................................253
8.4.3 处理冲突的方法...............................................................................................254
8.5 C#中的查找方法...........................................................................................................256
本章小结...............................................................................................................................256
习题八..................................................................................................................................256
参考文献......................................................................................................................................257
本源码包内暂不包含可直接显示的源代码文件,请下载源码包。