採用C和C#两种语言作为算法描述的语言,对常用的数据结构与算法作了系统的介绍,力求概念清晰简单,注重实际套用。本书通过两种语言对数据结构与算法的不同描述来揭示面向过程和面向对象两种不同的思想。全书共分为8章,依次介绍了数据结构与算法及本书用到的数学、C和C#知识、线性表、栈和伫列、串和数组、树型结构和图结构,以及排序和查找等基本运算。
基本介绍
- 书名:数据结构
- 译者:段恩泽 肖守柏
- ISBN:9787302225065
- 定价:¥28元
基本信息
系列名:高职高专计算机实用规划教材——案例驱动与项目实践
字数: 453千字
印张: 18.75
出版日期: 2010-6-1
内容简介
“数据结构”是计算机及相关专业必修的核心基础课程。本书採用C和C#两种语言作为算法描述的语言,对常用的数据结构与算法作了系统的介绍,力求概念清晰简单,注重实际套用。本书通过两种语言对数据结构与算法的不同描述来揭示面向过程和面向对象两种不同的思想。全书共分为8章,依次介绍了数据结构与算法及本书用到的数学、C和C#知识、线性表、栈和伫列、串和数组、树型结构和图结构,以及排序和查找等基本运算。
本书主要面向高职高专院校计算机专业的学生,也可作为非计算机专业学生的选修教材及计算机套用技术人员的自学参考书。
图书目录
第1章 绪论 1
1.1 数据结构 1
1.1.1 学习数据结构的必要性 1
1.1.2 基本概念和术语 2
1.2 算法 7
1.2.1 算法的特性 7
1.2.2 算法的评价标準 8
1.2.3 算法的时间複杂度 9
1.3 数学预备知识 11
1.3.1 集合 11
1.3.2 常用的数学术语 11
1.3.3 对数 12
1.3.4 递归 12
1.4 C预备知识 13
1.4.1 指针 13
1.4.2 结构体 14
1.5 C#预备知识 15
1.5.1 接口 15
1.5.2 泛型编程 19
本章小结 24
习题 25
第2章 线性表 27
2.1 线性表的逻辑结构 27
2.1.1 线性表的定义 27
2.1.2 线性表的基本操作 28
2.2 顺序表 30
2.2.1 顺序表的定义 30
2.2.2 顺序表数据关係的语言描述 31
2.2.3 顺序表数据操作的语言描述 32
2.2.4 顺序表套用举例 42
2.3 单鍊表 46
2.3.1 单鍊表的定义 47
2.3.2 单鍊表数据关係的语言描述 48
2.3.3 单鍊表数据操作的语言描述 50
2.3.4 单鍊表套用举例 65
2.4 其他鍊表 73
2.4.1 双向鍊表 73
2.4.2 循环鍊表 76
本章小结 76
习题 77
第3章 栈和伫列 78
3.1 栈 78
3.1.1 栈的定义及基本运算 78
3.1.2 顺序栈的存储和运算实现 80
3.1.3 链栈的存储和运算实现 85
3.1.4 栈的套用举例 90
3.2 伫列 96
3.2.1 伫列的定义及基本运算 96
3.2.2 循环顺序伫列的存储和运算实现 98
3.2.3 链伫列的存储和运算实现 106
3.2.4 伫列的套用举例 111
本章小结 113
习题 113
第4章 串和数组 115
4.1 串 115
4.1.1 串的基本概念及基本运算 115
4.1.2 串存储及基本运算实现 116
4.1.3 串的基本操作的实现 120
4.1.4 模式匹配 125
4.2 数组 131
4.2.1 数组的逻辑结构 131
4.2.2 数组的记忆体映像 132
本章小结 133
习题 133
第5章 树和二叉树 134
5.1 树 134
5.1.1 树的定义 134
5.1.2 树的相关术语 135
5.1.3 树的逻辑表示 136
5.1.4 树的基本操作 137
5.2 二叉树 138
5.2.1 二叉树的定义 138
5.2.2 二叉树的性质 139
5.2.3 二叉树的存储结构 141
5.2.4 二叉鍊表存储结构的语言描述 143
5.2.5 二叉树的遍历 146
5.2.6 线索二叉树 150
5.3 树与森林 153
5.3.1 树的存储 153
5.3.2 树、森林与二叉树的转换 157
5.3.3 树和森林的遍历 160
5.4 哈夫曼树 160
5.4.1 哈夫曼树的基本概念 160
5.4.2 哈夫曼树的实现 162
5.4.3 哈夫曼编码 166
5.5 二叉树的套用举例 167
本章小结 171
习题 172
第6章 图 174
6.1 图的基本概念 174
6.1.1 图的定义 174
6.1.2 图的基本术语 175
6.1.3 图的基本操作 178
6.2 图的存储结构 179
6.2.1 邻接矩阵 179
6.2.2 邻接表 187
6.3 图的遍历 199
6.3.1 深度优先遍历 199
6.3.2 广度优先遍历 202
6.4 图的套用 205
6.4.1 最小生成树 205
6.4.2 最短路径 210
6.4.3 拓扑排序 216
本章小结 218
习题 219
第7章 排序 221
7.1 基本概念 221
7.2 简单排序方法 222
7.2.1 直接插入排序 222
7.2.2 冒泡排序 225
7.2.3 简单选择排序 226
7.3 快速排序 229
7.4 堆排序 233
7.5 希尔排序 240
7.6 表插入排序 242
7.7 归併排序 247
7.8 树型选择排序 251
7.9 基数排序 252
7.9.1 多关键码排序 252
7.9.2 链式基数排序 253
7.10 各种排序方法的比较与讨论 255
本章小结 256
习题 257
第8章 查找 259
8.1 基本概念和术语 259
8.2 静态查找表 259
8.2.1 顺序查找 260
8.2.2 有序表的折半查找 261
8.2.3 索引查找 265
8.3 动态查找表 266
8.3.1 二叉排序树 266
8.3.2 平衡二叉树 276
8.3.3 B-树和B+树 278
8.4 哈希表 285
8.4.1 哈希表的基本概念 286
8.4.2 常用的哈希函式构造方法 286
8.4.3 处理冲突的方法 288
本章小结 290
习题 290
参考文献 292