书籍详情
数据结构与算法:C++版
作者:(美)乔兹德克(Drozdek, A.)编著;郑岩, 战晓苏译
出版社:清华大学出版社
出版时间:2006-01-01
ISBN:9787302119982
定价:¥69.00
购买这本书可以去
内容简介
本书全面系统地介绍了计算机科学教育中的一个重要组成部分——数据结构,并以C++语言实现相关的算法。书中主要强调了数据结构和算法之间的联系,使用面向对象的方法介绍数据结构,其内容包括算法的复杂度分析、链表、栈队列、递归技术、二叉树、图、排序以及散列。本书还清晰地阐述了同类教材中较少提到的内存管理、数据压缩和字符串匹配主题。书中包含大量的示例分析和图形,便于读者进一步理解和巩固所学的知识。.本书适用于计算机科学及其他相关专业的师生,对于需要参加计算机考试,或者得希望自学计算机软件开发的人员也大有裨益。本书特色:·本书的示例分析贯穿全文,便于学生在真实的环境下了解数据结构的概念。·本书每章最后都提供了程序设计作业,给学生提供额外的实践机会,巩固所学内容。..·本书配以大量的图形,便于学生对数据结构有直观的理解。...
作者简介
暂缺《数据结构与算法:C++版》作者简介
目录
第1章 C++面向对象程序设计
1.1 抽象数据类型
1.2 封装
1.3 继承
1.4 指针
1.4.1 指针和数组
1.4.2 指针和复制构造函数
1.4.3 指针和析构函数
1.4.4 指针和引用变量
1.4.5 函数指针
1.5 多态性
1.6 C++和面向对象程序设计
1.7 标准模板库
1.7.1 容器
1.7.2 迭代器
1.7.3 算法
1.7.4 数对象
1.8 标准模板库中的向量
1.9 数据结构与面向对象编程
1.10 案例分析:随机访问文件
1.1l 习题
1.12 程序设计作业
第2章 复杂度分析
2.1 计算复杂度和渐近复杂度
2.2 大O符号
2.3 大0符号的性质
2.4 符号与@符号
2.5 可能的问题
2.6 复杂度举例
2.7 确定渐近复杂度举例
2.8 最好、平均和最坏情况
2.9 阻尼复杂度
2.10 NP完整性
2.11 习题
第3章 链表
3.1 单链表
3.1.1 插入
3.1.2 删除
3.1.3 查找
3.2 双链表
3.3 循环链表
3.4 跳跃链表
3.5 自组织链表
3.6 稀疏表
3.7 标准模板库中的链表
3.8 标准模板库中的双端队列
3.9 小结
3.10 案例分析:图书馆
3.11 习题
3.12 程序设计作业
第4章 栈与队列
4.1 栈
4.2 队列
4.3 优先队列
4.4 标准模板库中的栈
4.5 标准模板库中的队列
4.6 标准模板库中的优先队列
4.7 案例分析:迷宫问题
4.8 习题
4.9 程序设计作业
第5章 递归
5.1 递归定义
5.2 函数调用与递归实现
5.3 递归调用的剖析
5.4 尾部递归
5.5 非尾部递归
5.6 间接递归
5.7 嵌套递归
5.8 不合理递归
5.9 回溯
5.10 小结
5.11 案例分析:递归下降解释器
5.12 习题
5.13 程序设计作业
第6章 二叉树
6.1 树、二叉树和二叉搜索树
6-2 二叉树的实现
6-3 二叉搜索树的查找
6.4 树的遍历
6.4.1 广度优先遍历
6.4.2 深度优先遍历
6.4.3 不用栈实现的深度优先遍历
6.5 插入
6.6 删除
6.6.1 合并删除
6.6.2 通过复制进行删除
6.7 树的平衡
6.7.1 DSW算法
6.7.2 AVL树
6.8 自调整树
6.8.1 自重新构造树
6.8.2 “张开”策略
6.9 堆
6.9.1 将堆作为优先队列
6.9.2 将数组组织为堆
6.10 波兰记号和表达式树
6.11 案例分析:计算单词出现的频率
6.12 习题
6.13 程序设计作业
第7章 多叉树
7.1 B树家族
7.1.1 B树
7.1.2 B*树
7.1.3 B+树
7.1.4 前缀B+树
7.1.5 位树
7.1.6 R树
7.1.7 2-4树
7.1.8 标准模板库中的集和多集
7.1.9 标准模板库中的映射和多映射
7.2 trie
7.3 小结
7.4 案例分析:拼写检查器
7.5 习题
7.6 程序设计作业
第8章 图
8.1 图的表示法
8.2 图的遍历
8-3 最短路径
8.4 环的检测
8.5 生成树
8.6 连通性
8.6.1 无向图中的连通性
8.6.2 有向图中的连通性
8.7 拓扑排序
8.8 网络
8.8.1 最大流
8.8.2 成本最低的最大流
8.9 匹配
8.9.1 稳定匹配问题
8.9.2 分配问题
8.9.3 非二分图中的匹配集合
8.10 欧拉(Eulerian)图与汉密尔顿(Harlliltonian)图
8.11 给图加上颜色
8.12 图理论中的NP完整性问题
8.12.1 派系问题
8.12.2 三色问题
8.12.3 顶点覆盖问题
8.12.4 汉密尔顿环问题
8.13 案例分析:惟一代表
8.14 习题
8.10.1 欧拉图
8.10.2 汉密尔顿图
8.15 程序设计作业
第9章 排序
9.1 基本的排序算法
9.1.1 插入排序
9.1.2 选择排序
9.1.3 冒泡排序
9.2 决策树
9-3 高效排序算法
9.3.1 希尔排序
9.3.2 堆排序
9.3.3 快速排序
9.3.4 归并排序
9.3.5 基数排序
9.4 标准模板库中的排序
9.5 小结
9.6 案例分析:多项式相加
9.7 习题
9.8 程序设计作业
第10 章散列
10.1 散列函数
10.1.1 除余法
10.1.2 折叠法
10.1.3 平方取中法
10.1.4 提取法
10.1.5 基数转换法
10.2 冲突解决方法
10.2.1 开放定址法
10.2.2 链接法
10.2.3 桶定址
10.3 删除
l0.4 理想散列函数
10.4.1 Cichelli方法
10.4.2 FHCD算法
10.5 可扩展文件的散列函数
10.5.1 可扩展散列
10.5.2 线性散列
10.6 案例分析:使用桶的散列
10.7 习题
10.8 程序设计作业
第11章 数据压缩
11.1 数据压缩的条件
11.2 Huffman编码
11.3 Run-Length编码方式
11.4 Ziv-Lempel编码方式
11.5 案例分析:Huffman方法和Run-Length编码方式
11.6 习题
11.7 程序设计作业
第12章 内存管理
12.1 sequential-fit方法
12.2 Nonsequential.fit方法
12-3 无用单元回收
12.3.1 标记和清除
12.3.2 复制方法
12.3.3 递增的无用单元回收
12.4 小结
12.5 案例分析
12.6 习题-
12.7 程序设计作业
第13章 字符串匹配
13.1字符串的精确匹配
13.1.1简单的算法
13.1.2 Knuth-Morris-Pratt算法
13.1.3 Boyer-Moore算法-
13.1.4 多次搜索
13.1.5 面向位的方法
13.1.6 单词集合的匹配
13.1.7 正则表达式的匹配
13.1.8 后缀tile和树
13.1.9 后缀数组
13.2 字符串的模糊匹配
13.2.1 字符串的近似性
13.2.2 有k个错误的字符串匹配
13.3 案例分析:最长的共有子字符串
13.4习题
13.5程序设计作业
附录A 计算大O
A.1 调和数序列n
A.2 函灵敏lg(N!)的近似值
A.3 快速排序中平均情况的大O
A.4 随机二叉树中的平均路径长度
A.5 AVL树中的节点数
附录B 标准模板库中的算法
附录C NP完整性
1.1 抽象数据类型
1.2 封装
1.3 继承
1.4 指针
1.4.1 指针和数组
1.4.2 指针和复制构造函数
1.4.3 指针和析构函数
1.4.4 指针和引用变量
1.4.5 函数指针
1.5 多态性
1.6 C++和面向对象程序设计
1.7 标准模板库
1.7.1 容器
1.7.2 迭代器
1.7.3 算法
1.7.4 数对象
1.8 标准模板库中的向量
1.9 数据结构与面向对象编程
1.10 案例分析:随机访问文件
1.1l 习题
1.12 程序设计作业
第2章 复杂度分析
2.1 计算复杂度和渐近复杂度
2.2 大O符号
2.3 大0符号的性质
2.4 符号与@符号
2.5 可能的问题
2.6 复杂度举例
2.7 确定渐近复杂度举例
2.8 最好、平均和最坏情况
2.9 阻尼复杂度
2.10 NP完整性
2.11 习题
第3章 链表
3.1 单链表
3.1.1 插入
3.1.2 删除
3.1.3 查找
3.2 双链表
3.3 循环链表
3.4 跳跃链表
3.5 自组织链表
3.6 稀疏表
3.7 标准模板库中的链表
3.8 标准模板库中的双端队列
3.9 小结
3.10 案例分析:图书馆
3.11 习题
3.12 程序设计作业
第4章 栈与队列
4.1 栈
4.2 队列
4.3 优先队列
4.4 标准模板库中的栈
4.5 标准模板库中的队列
4.6 标准模板库中的优先队列
4.7 案例分析:迷宫问题
4.8 习题
4.9 程序设计作业
第5章 递归
5.1 递归定义
5.2 函数调用与递归实现
5.3 递归调用的剖析
5.4 尾部递归
5.5 非尾部递归
5.6 间接递归
5.7 嵌套递归
5.8 不合理递归
5.9 回溯
5.10 小结
5.11 案例分析:递归下降解释器
5.12 习题
5.13 程序设计作业
第6章 二叉树
6.1 树、二叉树和二叉搜索树
6-2 二叉树的实现
6-3 二叉搜索树的查找
6.4 树的遍历
6.4.1 广度优先遍历
6.4.2 深度优先遍历
6.4.3 不用栈实现的深度优先遍历
6.5 插入
6.6 删除
6.6.1 合并删除
6.6.2 通过复制进行删除
6.7 树的平衡
6.7.1 DSW算法
6.7.2 AVL树
6.8 自调整树
6.8.1 自重新构造树
6.8.2 “张开”策略
6.9 堆
6.9.1 将堆作为优先队列
6.9.2 将数组组织为堆
6.10 波兰记号和表达式树
6.11 案例分析:计算单词出现的频率
6.12 习题
6.13 程序设计作业
第7章 多叉树
7.1 B树家族
7.1.1 B树
7.1.2 B*树
7.1.3 B+树
7.1.4 前缀B+树
7.1.5 位树
7.1.6 R树
7.1.7 2-4树
7.1.8 标准模板库中的集和多集
7.1.9 标准模板库中的映射和多映射
7.2 trie
7.3 小结
7.4 案例分析:拼写检查器
7.5 习题
7.6 程序设计作业
第8章 图
8.1 图的表示法
8.2 图的遍历
8-3 最短路径
8.4 环的检测
8.5 生成树
8.6 连通性
8.6.1 无向图中的连通性
8.6.2 有向图中的连通性
8.7 拓扑排序
8.8 网络
8.8.1 最大流
8.8.2 成本最低的最大流
8.9 匹配
8.9.1 稳定匹配问题
8.9.2 分配问题
8.9.3 非二分图中的匹配集合
8.10 欧拉(Eulerian)图与汉密尔顿(Harlliltonian)图
8.11 给图加上颜色
8.12 图理论中的NP完整性问题
8.12.1 派系问题
8.12.2 三色问题
8.12.3 顶点覆盖问题
8.12.4 汉密尔顿环问题
8.13 案例分析:惟一代表
8.14 习题
8.10.1 欧拉图
8.10.2 汉密尔顿图
8.15 程序设计作业
第9章 排序
9.1 基本的排序算法
9.1.1 插入排序
9.1.2 选择排序
9.1.3 冒泡排序
9.2 决策树
9-3 高效排序算法
9.3.1 希尔排序
9.3.2 堆排序
9.3.3 快速排序
9.3.4 归并排序
9.3.5 基数排序
9.4 标准模板库中的排序
9.5 小结
9.6 案例分析:多项式相加
9.7 习题
9.8 程序设计作业
第10 章散列
10.1 散列函数
10.1.1 除余法
10.1.2 折叠法
10.1.3 平方取中法
10.1.4 提取法
10.1.5 基数转换法
10.2 冲突解决方法
10.2.1 开放定址法
10.2.2 链接法
10.2.3 桶定址
10.3 删除
l0.4 理想散列函数
10.4.1 Cichelli方法
10.4.2 FHCD算法
10.5 可扩展文件的散列函数
10.5.1 可扩展散列
10.5.2 线性散列
10.6 案例分析:使用桶的散列
10.7 习题
10.8 程序设计作业
第11章 数据压缩
11.1 数据压缩的条件
11.2 Huffman编码
11.3 Run-Length编码方式
11.4 Ziv-Lempel编码方式
11.5 案例分析:Huffman方法和Run-Length编码方式
11.6 习题
11.7 程序设计作业
第12章 内存管理
12.1 sequential-fit方法
12.2 Nonsequential.fit方法
12-3 无用单元回收
12.3.1 标记和清除
12.3.2 复制方法
12.3.3 递增的无用单元回收
12.4 小结
12.5 案例分析
12.6 习题-
12.7 程序设计作业
第13章 字符串匹配
13.1字符串的精确匹配
13.1.1简单的算法
13.1.2 Knuth-Morris-Pratt算法
13.1.3 Boyer-Moore算法-
13.1.4 多次搜索
13.1.5 面向位的方法
13.1.6 单词集合的匹配
13.1.7 正则表达式的匹配
13.1.8 后缀tile和树
13.1.9 后缀数组
13.2 字符串的模糊匹配
13.2.1 字符串的近似性
13.2.2 有k个错误的字符串匹配
13.3 案例分析:最长的共有子字符串
13.4习题
13.5程序设计作业
附录A 计算大O
A.1 调和数序列n
A.2 函灵敏lg(N!)的近似值
A.3 快速排序中平均情况的大O
A.4 随机二叉树中的平均路径长度
A.5 AVL树中的节点数
附录B 标准模板库中的算法
附录C NP完整性
猜您喜欢