当前位置:首页 > 工业技术
数据结构与算法  C#语言描述
数据结构与算法  C#语言描述

数据结构与算法 C#语言描述PDF电子书下载

工业技术

  • 电子书积分:11 积分如何计算积分?
  • 作 者:(美)MichaelMcMillan著;吕秀锋,崔睿译
  • 出 版 社:北京:人民邮电出版社
  • 出版年份:2009
  • ISBN:9787115204271
  • 页数:260 页
图书介绍:本书是在.NET框架中用C#语言实现数据结构和算法的第一本全面的参考书。本书介绍的方法非常实用,采用了时间测试而非大O表示法来分析方法的效率。内容涵盖了数组、ArayLists、链表、散列表、字典、树、图、排序算法和查找算法,以及更高级的不确定性算法和动态编程等内容。此外,书中还提供了.NET Framework库中出现的数据结构和算法的完整的C#实现。
《数据结构与算法 C#语言描述》目录

第1章Collections类、泛型类和Timing类概述 1

群集的定义 1

群集的描述 1

直接存取群集 2

顺序存取群集 4

层次群集 6

组群集 7

CollectionBase类 8

用ArrayList实现Collection类 8

定义Collection类 8

实现Collection类 8

泛型编程 10

时间测试 12

一个简单化的时间测试 12

用于.NET环境的时间测试 13

Timing Test类 14

小结 16

练习 17

第2章 数组和ArrayList 18

数组基本概念 18

数组的声明和初始化 18

数组元素的设置和存取访问 19

检索数组元数据的方法和属性 19

多维数组 20

参数数组 21

锯齿状数组 22

ArrayList类 23

ArrayList类的成员 23

应用ArrayList类 24

小结 27

练习 27

第3章 基础排序算法 29

排序算法 29

数组类测试环境 29

冒泡排序 31

检验排序过程 32

选择排序 33

插入排序 35

基础排序算法的时间比较 36

小结 37

练习 38

第4章 基础查找算法 39

顺序查找 39

查找最小值和最大值 41

自组织数据加快顺序查找速度 42

二叉查找算法 43

递归二叉查找算法 45

小结 47

练习 47

第5章 栈和队列 48

栈、栈的实现以及Stack类 48

栈的操作 48

Stack类的实现 49

Stack类 51

Stack构造器方法 51

主要的栈操作 52

Peek方法 54

Clear方法 54

Contains方法 54

CopyTo方法和ToArray方法 54

Stack类的实例:十进制向多种进制的转换 55

队列、Queue类以及Queue类的实现 56

队列的操作 56

Queue的实现 57

Queue类:实例应用 58

用队列排序数据 61

源自Queue类的优先队列 64

小结 65

练习 66

第6章BitArray类 67

激发的问题 67

位和位操作 68

二进制数制系统 68

处理二进制数:按位运算符和移位运算符 69

按位运算符的应用 70

整数转换成二进制形式的应用程序 74

移位的示例应用程序 76

BitArray类 78

使用BitArray类 78

更多BitArray类的方法和属性 81

用BitArray来编写埃拉托斯特尼筛法 81

BitArray与数组在埃拉托斯特尼筛法上的比较 83

小结 83

练习 84

第7章 字符串、String类和StringBuilder类 85

String类的应用 85

创建String对象 85

常用的String类方法 86

Split方法和Join方法 88

比较字符串的方法 90

处理字符串的方法 92

StringBuilder类 98

构造StringBuilder对象 98

获取并且设置关于StringBuilder对象的信息 98

修改StringBuilder对象 99

String类与StringBuilder的性能比较 101

小结 103

练习 103

第8章 模式匹配和文本处理 105

正则表达式概述 105

数量词 107

使用字符类 109

用断言修改正则表达式 111

使用分组构造 112

匿名组 112

命名组 112

零宽度正向预搜索断言和零宽度反向预搜索断言 113

CapturesCollection类 114

正则表达式的选项 115

小结 116

练习 116

第9章 构建字典:DictionaryBase类和SortedList类 117

DictionaryBase类 117

DictionaryBase类的基础方法和属性 117

其他的DictionaryBase方法 119

泛型KeyValuePair类 121

SortedList类 122

小结 123

练习 123

第10章 散列和Hashtable类 125

散列概述 125

选择散列函数 125

查找散列表中数据 127

解决冲突 128

桶式散列法 128

开放定址法 129

双重散列法 130

Hashtable类 130

实例化Hashtable对象并且给其添加数据 130

从散列表中分别检索键和数值 131

检索基于键的数值 132

Hashtable类的实用方法 133

Hashtable的应用:计算机术语表 133

小结 136

练习 136

第11章 链表 137

数组存在的问题 137

链表的定义 137

面向对象链表的设计 138

Node类 138

LinkedList类 139

链表设计的改进方案 141

双向链表 141

循环链表 143

使用Iterator类 146

新的LinkedList类 148

实例化Iterator类 148

泛型Linked List类和泛型Node类 152

小结 154

练习 154

第12章 二叉树和二叉查找树 155

树的定义 155

二叉树 156

构造二叉查找树 157

遍历二叉查找树 159

在二叉查找树中查找节点和最大/最小值 161

从二叉查找树中移除叶子节点 162

删除带有一个子节点的节点 163

删除带有两个子节点的节点 164

小结 167

练习 167

第13章 集合 169

集合的基础定义、操作及属性 169

集合的定义 169

集合的操作 169

集合的属性 169

第一个用散列表的Set类的实现 170

类数据成员和构造器方法 170

Add方法 170

Remove方法和Size方法 171

Union方法 171

Intersection方法 172

Subset方法 172

Difference方法 172

测试CSet实现的程序 173

CSet类的BitArray实现 174

使用BitArray实现的概述 174

BitArray集合的实现 175

小结 177

练习 177

第14章 高级排序算法 178

希尔排序算法 178

归并排序算法 179

堆排序算法 182

快速排序算法 185

快速排序算法的描述 186

快速排序算法的代码 187

快速排序算法的改进 188

小结 188

练习 188

第15章 用于查找的高级数据结构和算法 189

AVL树 189

AVL树的基本原理 189

AVL树的实现 190

红黑树 192

红黑树规则 192

红黑树的插入 193

红黑树实现代码 194

跳跃表 198

跳跃表的基本原理 198

跳跃表的实现 199

小结 203

练习 203

第16章 图和图的算法 204

图的定义 204

由图模拟真实世界系统 205

图类 205

顶点的表示 205

边的表示 206

图的构造 206

图的第一个应用:拓扑排序 208

拓扑排序算法 208

拓扑排序算法的实现 208

图的搜索 211

深度优先搜索 211

广度优先搜索 213

最小生成树 215

查找最短路径 218

加权图 218

确定最短路径的Dijkstra算法 218

Di jkstra算法的代码 220

小结 226

练习 226

第17章 高级算法 227

动态规划 227

动态规划实例:计算斐波纳契数列 227

寻找最长公共子串 230

背包问题 232

贪心算法 234

贪心算法实例:找零钱问题 234

采用哈夫曼编码的数据压缩 236

用贪心算法解决背包问题 243

小结 245

练习 246

参考文献 247

索引 248

返回顶部