数据结构:基于C++模板类的实现
2推荐 收藏
7.1K阅读
高等院校计算机教材系列

数据结构:基于C++模板类的实现

余腊生 (作者)
终止销售
本书采用能够自然体现抽象数据类型概念的C++ 语言作为算法描述语言,把数据结构的原理和算法分析技术有机地结合在一起。全书内容包括线性表、栈、队列、递归、广义表、字符串、数组、树、图、查找以及各种排序算法,并给出了相关的实验指导。书中还引入了一些比较高级的数据结构和相关的算法分析技术。
本书可作为高等院校计算机或相关专业的教材,也可以作为其他程序类课程的辅导教材,同时也适用准备参加研究生入学考试、自学考试和各类程序设计竞赛的人员阅读。
纸质书
¥39.00

其他购买方式?

出版信息

  • 书  名数据结构:基于C++模板类的实现
  • 系列书名高等院校计算机教材系列
  • 执行编辑关于本书的内容有任何问题,请联系 傅志红
  • 出版日期2008-09-30
  • 书  号978-7-115-18643-0
  • 定  价39.00 元
  • 页  数364
  • 开  本16开
  • 出版状态终止销售
  • 原书名数据结构:基于C++模板类的实现
  • 原书号余腊生-01

同系列书

  • C++程序设计:思想与方法

    翁惠玉  

    本书以C++ 为语言环境,重点讲授程序设计的思想和方法,涉及过程化程序设计和面向对象程序设计。本书分为...

  • 新编实用算法分析与程序设计

    王建德   吴永辉  

    本书是一部程序设计竞赛教程。书中首先讲述了算法的基本概念、各种排序与解题的方法及策略,然后论述了初等数...

  • C++程序设计:思想与方法(第2版)

    翁惠玉  

    本书以C++ 为语言环境,重点讲授程序设计的思想和方法,涉及过程化程序设计和面向对象程序设计,内容包括数据类型...

  • 数字逻辑

    吴继娟  

    本书系统地讲述了数字逻辑电路的基本概念、分析方法和设计原理。全书共分7章,重点讨论了组合逻辑电路和各类...

  • 计算机导论实践教程

    王洋   胡斌   吕云翔  

    本书以实验的形式讲述了计算机导论实践课程涉及的计算机硬件、操作系统、应用软件、网络、编程和数据库、多媒...

本书特色

大多数算法使用了参数化的模板,支持高效的代码重用。
大量的图解和具体的实例分析使抽象的内容变得具体而且浅显易懂。
对于重点算法给出了富于启发性的问题及讨论。
设计了许多有典型性的习题和实验指导(后者可从图灵网站www.turingbook.com本书网页免费注册下载),帮助读者能够学会正确地选择数据结构,编写符合程序规范的代码,为应用程序的开发打下基础。

目录

第1章 绪论 1
1.1 数据结构的概念 1
1.1.1 为什么要学习数据结构 2
1.1.2 相关概念和术语 4
1.2 抽象数据类型 6
1.2.1 数据类型 6
1.2.2 抽象数据类型 7
1.3 算法和算法分析 10
1.3.1 问题求解概述 10
1.3.2 算法特性 10
1.3.3 常见的算法类型 11
1.3.4 算法描述 12
1.3.5 算法性能分析与度量 12
习题 15
实习题 16
第2章 线性表 17
2.1 线性表的逻辑结构 17
2.1.1 线性表的定义 17
2.1.2 线性表的基本操作 17
2.2 线性表的顺序存储及操作实现 20
2.2.1 顺序表 20
2.2.2 顺序表上基本操作的实现 22
2.2.3 顺序表应用举例 25
2.2.4 小结 25
2.3 线性表的链式存储及操作实现 26
2.3.1 单向链表 26
2.3.2 单向链表上基本操作的实现 28
2.3.3 循环链表 34
2.3.4 双向链表 37
2.3.5 静态链表 41
2.3.6 单向链表应用举例 44
2.4 顺序表和链表的选取 47
习题 47
实习题 49
第3章 栈和队列 50
3.1 栈 50
3.1.1 栈的定义及基本操作 50
3.1.2 栈的存储及操作实现 51
3.1.3 栈应用举例 56
3.2 队列 66
3.2.1 队列的定义及基本操作 66
3.2.2 队列的存储及操作实现 66
3.2.3 优先队列 72
3.2.4 双端队列 74
3.2.5 队列应用举例 74
习题 79
实习题 80
第4章 递归和广义表 82
4.1 何谓递归 82
4.2 递归的执行过程 84
4.3 尾部递归函数 88
4.4 递归的应用 89
4.4.1 汉诺塔问题 89
4.4.2 迷宫问题 90
4.4.3 n皇后问题 92
4.5 递归程序到非递归程序的转换 94
4.5.1 简单转换 95
4.5.2 复杂转换 95
4.5.3 转化的形式化步骤 97
4.6 广义表 101
4.6.1 广义表的定义及基本操作 101
4.6.2 广义表的存储 103
4.6.3 广义表有关操作的实现 105
习题 107
实习题 108
第5章 字符串 110
5.1 字符串及其基本操作 110
5.1.1 字符串的基本概念 110
5.1.2 字符串的基本操作 111
5.2 字符串的定长顺序存储及基本操作 112
5.2.1 字符串的定长顺序存储 112
5.2.2 定长顺序串的基本操作 114
5.2.3 模式匹配 114
5.3 字符串的堆存储 123
5.3.1 字符串名的存储映像 123
5.3.2 堆存储结构 124
5.3.3 基于堆存储结构的基本操作 125
5.4 字符串的链式存储 128
5.5 字符串的应用 128
5.5.1 中文分词 128
5.5.2 遗传算法 130
习题 131
实习题 133
第6章 数组与矩阵 134
6.1 数组 134
6.1.1 数组的逻辑结构 134
6.1.2 数组的内存映像 137
6.2 特殊矩阵的压缩存储 139
6.2.1 对角矩阵 139
6.2.2 三对角矩阵 140
6.2.3 三角矩阵 141
6.2.4 对称矩阵 142
6.3 稀疏矩阵 143
6.3.1 稀疏矩阵的三元组表存储 143
6.3.2 稀疏矩阵的链式存储 149
6.3.3 稀疏矩阵的十字链表存储 149
习题 155
实习题 156
第7章 树与二叉树 157
7.1 树的定义及表示 157
7.1.1 树的定义 157
7.1.2 树的表示 158
7.1.3 树的特点 159
7.1.4 与树相关的基本术语 159
7.1.5 树形结构的逻辑特征 160
7.1.6 树的存储 161
7.2 二叉树 165
7.2.1 二叉树的定义及相关概念 165
7.2.2 二叉树的主要性质 167
7.2.3 二叉树的存储 168
7.2.4 二叉树的基本操作及实现 171
7.3 二叉树的遍历 171
7.3.1 二叉树的遍历方法及递归实现 171
7.3.2 二叉树遍历的非递归实现 173
7.3.3 遍历算法应用举例 176
7.3.4 由遍历序列恢复二叉树 178
7.3.5 不用栈的二叉树遍历非递归方法 179
7.4 线索二叉树 179
7.4.1 线索二叉树的定义及结构 179
7.4.2 线索二叉树的基本操作及实现 181
7.5 最优二叉树——赫夫曼树 187
7.5.1 赫夫曼树的基本概念 187
7.5.2 赫夫曼树的构造算法 189
7.5.3 赫夫曼树的应用 190
7.6 树、森林与二叉树的转换 193
7.6.1 树、森林到二叉树的转换 193
7.6.2 二叉树到树和森林的转换 194
7.7 树和森林的遍历 195
7.7.1 树的遍历 195
7.7.2 森林的遍历 196
7.7.3 树和森林的层次次序遍历 197
7.8 树的应用 197
7.8.1 判定树 197
7.8.2 集合的表示 198
习题 200
实习题 202
第8章 图 203
8.1 基本概念 203
8.1.1 图的定义和术语 203
8.1.2 图的抽象数据类型 207
8.2 图的存储结构 208
8.2.1 邻接矩阵 208
8.2.2 邻接表 212
8.2.3 邻接矩阵和邻接表的比较 215
8.2.4 十字链表 216
8.2.5 邻接多重表 217
8.2.6 索引表 218
8.3 图的遍历 218
8.3.1 深度优先搜索 219
8.3.2 广度优先搜索 220
8.4 图的连通性 221
8.4.1 无向图的连通性 221
8.4.2 有向图的连通性 222
8.4.3 生成树和生成森林 223
8.4.4 关节点和双连通分量 224
8.5 最小生成树 226
8.5.1 最小生成树的基本概念 226
8.5.2 Prim算法 227
8.5.3 Kruskal算法 230
8.6 最短路径 231
8.6.1 无权最短路径问题 232
8.6.2 从一个源点到其他各顶点的最短路径 233
8.6.3* 边上权值为任意值的单源最短路径问题 236
8.6.4* 负权最短路径问题 237
8.6.5 每对顶点之间的最短路径 239
8.7 DAG及其应用 240
8.7.1 DAG的概念 240
8.7.2 AOV网与拓扑排序 241
8.7.3 AOE图与关键路径 246
习题 250
实习题 253
第9章 查找 254
9.1 基本概念 254
9.2 静态查找表 255
9.2.1 静态查找表结构 255
9.2.2 顺序查找 256
9.2.3 有序表的二分查找 257
9.2.4 有序表的斐波那契查找和插值查找 260
9.2.5 分块查找 261
9.3 动态查找表 262
9.3.1 二叉排序树 263
9.3.2 平衡二叉树 267
9.3.3* 红黑树 280
9.3.4 B树 289
9.3.5 B+树 298
9.4 散列表查找 299
9.4.1 散列表与散列方法 299
9.4.2 常用的散列函数 300
9.4.3 处理冲突的方法 302
9.4.4 散列表的查找分析 306
9.4.5 散列表的操作 308
习题 310
实习题 311
第10章 排序 312
10.1 基本概念 312
10.2 插入排序 314
10.2.1 直接插入排序 314
10.2.2 二分插入排序 316
10.2.3 表插入排序 317
10.2.4 谢尔排序 319
10.3 交换排序 321
10.3.1 冒泡排序 321
10.3.2 快速排序 323
10.4 选择排序 326
10.4.1 线性选择排序 326
10.4.2 交换线性选择排序 328
10.4.3 树形选择排序 329
10.4.4 堆排序 331
10.4.5 用堆实现的优先队列 336
10.5 两路归并排序 337
10.6 分配排序 339
10.6.1 多键排序 339
10.6.2 桶排序 340
10.6.3 链式基数排序 340
10.7 其他排序方法 342
10.7.1 二叉树排序法 342
10.7.2 计数排序法 342
10.8 各种内排序方法的比较 344
10.9* 外排序 346
10.9.1 外排序的方法 346
10.9.2 自然归并排序法 347
10.9.3 k路归并法 347
10.9.4 多段归并法 349
习题 352
实习题 354
参考文献 355
附录 实验指导(图灵网站下载)
  • 我已经注册了,可是还是不能下载资源,是怎么回事?希望尽快得到你们的回复。
    我想下载余腊生 《数据结构》的所有资源。我的邮箱是jinlanzhang@sogou.com
    jinlanzhang  发表于 2010-06-28 22:03:41
    推荐