图书介绍
数据结构 C#语言描述PDF|Epub|txt|kindle电子书版本网盘下载
![数据结构 C#语言描述](https://www.shukui.net/cover/73/31249082.jpg)
- 陈广主编 著
- 出版社: 北京市:北京大学出版社
- ISBN:9787301144756
- 出版时间:2009
- 标注页数:282页
- 文件大小:70MB
- 文件页数:295页
- 主题词:数据结构-高等学校:技术学校-教材;C语言-程序设计-高等学校:技术学校-教材
PDF下载
下载说明
数据结构 C#语言描述PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第1章 绪论1
1.1什么是数据结构1
1.1.1数据结构的产生与发展2
1.1.2数据和数据结构3
1.1.3数据的逻辑结构3
1.1.4数据的存储结构4
1.1.5数据类型6
1.2算法与算法分析6
1.2.1算法6
1.2.2算法设计的目标6
1.2.3算法的时间复杂度7
1.2.4算法的空间复杂度10
1.3本章小结10
1.4习题11
第2章 线性表13
2.1线性表的定义13
2.2线性表的顺序存储结构——顺序表13
2.2.1顺序表的特点13
2.2.2数组14
2.2.3 System.Collections.ArrayList16
2.2.4类型安全22
2.3线性表的链式存储结构——链表23
2.3.1单向链表24
2.3.2循环链表29
2.3.3双向链表34
2.4本章小结38
2.5实训指导:虚拟线性表39
2.6习题48
第3章 栈和队列51
3.1栈51
3.1.1栈的概念及操作51
3.1.2 System.Collections.Stack52
3.1.3栈的应用54
3.1.4双向栈55
3.2队列56
3.2.1队列的概念及操作56
3.2.2循环队列57
3.2.3 System.Collections.Queue58
3.3本章小结61
3.4实训指导:虚拟循环队列62
3.5习题67
第4章 串69
4.1串的基本概念69
4.2 String69
4.3 System.Text.StringBuilder70
4.4串的模式匹配72
4.4.1 Brute-Force算法72
4.4.2 KMP算法74
4.5本章小结83
4.6实训指导:求最长公共子串83
4.7习题85
第5章 树88
5.1树的基本概念89
5.1.1树的定义89
5.1.2树的表示89
5.1.3树的基本术语90
5.2二叉树91
5.2.1二叉树的基本概念91
5.2.2二叉树的存储结构92
5.3二叉树的遍历94
5.3.1二叉树的深度优先遍历94
5.3.2二叉树的广度优先遍历98
5.4线索二叉树100
5.4.1线索二叉树的定义100
5.4.2中序线索二叉树101
5.5树和森林105
5.5.1树的存储结构105
5.5.2森林、树、二叉树的相互转换107
5.6可绘制二叉树的设计109
5.6.1二叉树结点的位置关系110
5.6.2接口设计110
5.6.3二叉树绘制类的设计112
5.6.4实现可绘制二叉树115
5.7二叉树画树算法117
5.7.1满二叉树画法117
5.7.2界内画法120
5.7.3最小面积画法121
5.8本章小结126
5.9实训指导:虚拟二叉树126
5.10习题137
第6章 图139
6.1基本概念和术语139
6.2图的存储结构142
6.2.1邻接矩阵表示法142
6.2.2邻接表表示法143
6.3图的遍历147
6.3.1深度优先搜索遍历148
6.3.2广度优先搜索遍历150
6.3.3非连通图的遍历151
6.4生成树和最小生成树152
6.4.1生成树152
6.4.2最小生成树153
6.4.3普里姆算法153
6.4.4克鲁斯卡尔算法157
6.5最短路径161
6.5.1单源点最短路径161
6.5.2所有顶点之间的最短路径165
6.6本章小结168
6.7实训指导:迷宫最短路径问题168
6.8习题176
第7章 查找179
7.1查找的基本概念179
7.2顺序查找179
7.3二分查找180
7.3.1二分查找的基本原理180
7.3.2二分查找的算法实现181
7.3.3 Array.BinarySearch方法183
7.3.4剖析System.Collections.SortedList183
7.4分块查找188
7.5二叉查找树188
7.5.1二叉查找树的定义189
7.5.2二叉查找树的查找189
7.5.3二叉查找树的插入190
7.5.4二叉查找树的删除191
7.5.5二叉查找树的代码实现192
7.6本章小结196
7.7实训指导:Array.BinarySearch的使用196
7.8习题199
第8章 哈希表201
8.1概念引入201
8.2构造哈希函数的方法204
8.2.1直接定址法204
8.2.2数字分析法204
8.2.3除留余数法205
8.3哈希冲突解决方法205
8.3.1闭散列法(开放地址法)206
8.3.2开散列法(链地址法)208
8.4剖析System.Collections.Hashtable209
8.4.1 Hashtable的实现原理209
8.4.2 Hashtable的代码实现211
8.5剖析Dictionary<TKey,TValue>220
8.5.1 Dictionary<TKey,TValue>类实现原理220
8.5.2 Dictionary<TKey, TValue>的代码实现224
8.6本章小结229
8.7实训指导:虚拟哈希表229
8.8习题235
第9章 排序237
9.1排序的基本概念237
9.2插入排序237
9.2.1直接插入排序237
9.2.2希尔排序239
9.3交换排序241
9.3.1冒泡排序241
9.3.2快速排序242
9.4选择排序244
9.4.1直接选择排序244
9.4.2堆排序245
9.5归并排序248
9.5.1二路归并排序248
9.5.2二路归并排序的实现249
9.6本章小结250
9.7实训指导:使用IComparer<T>接口进行排序250
9.8习题255
第10章 综合实训——八数码问题258
10.1什么是八数码问题258
10.2八数码问题的解析258
10.2.1从初始状态到达目标状态是否有解258
10.2.2使用什么方法求解八数码问题的最优解259
10.2.3如何避免重复访问一个状态260
10.2.4怎样记录查找路径260
10.2.5使用什么数据结构表示棋盘状态261
10.3设计目标262
10.4界面设计263
10.5代码编写263
10.5.1 MoveDirection.cs263
10.5.2 AIResult.cs263
10.5.3 HashHelpers.cs264
10.5.4 SimpleDictionary.cs265
10.5.5 NumSwitch.cs268
10.5.6 IEightNumAI.cs270
10.5.7 BFS_AI.cs270
10.5.8 MainForm.cs272
10.6调试运行279
10.7思考与改进279
参考文献280