书籍详情
数据结构与算法-JAVA语言版(第二版)
作者:(美)德罗兹德克 著;周翔 译
出版社:机械工业出版社
出版时间:2006-07-01
ISBN:9787111189930
定价:¥59.00
购买这本书可以去
内容简介
本书系统讲解数据结构和算法,并分析了算法的复杂性。本书选择Java语言以面向对象的方式描述数据结构,还特别强调了封装和分解的信息隐藏原理。主要内容包括:面向对象编程的基本原理,判定算法效率的方法,堆栈、队列及其应用,对于多种递归的详细讨论,二叉树、B树、2-4树等的查找和遍历等,分析排序、散列等数据结构的应用,图、NP完整性,数据压缩算法、存储管理技术以及自动机理论和字符串匹配等算法。本书适合作为高等院校计算机专业的教材,也是计算机算法方面的重要参考书。数据结构和算法课程是计算机科学教育的核心内容,本书提供了该领域必备的知识。根据当前的设计和实现范例,本书以面向对象的方式描述数据结构,深入浅出地讲解了相关的难点。Drozdek强调了数据结构和算法之间的关系,分析了算法的复杂性,还讲解了增强封装和分解的信息隐藏原理,对递归方法和递归进行了清晰、详尽的阐述。本书第1版取材新颖,被很多学校采用为教学参考书。第2版在延续了第1版理论结合实际的风格的同时,在理论上更精深了一层,添加了很多数据结构的经典问题与新的思想,比如NP完整性、图论中的团问题以及结合自动机理论探讨的字符串匹配技术等。本书特点:·示例学习 贯穿全书,从实际应用的角度诠释概念。·编程作业 为读者提供大量的实践机会。·丰富的图表 增强对数据结构用途的理解。·清晰地阐述递归 即使对高年级学生而言,这也是具有挑战性的主题。
作者简介
暂缺《数据结构与算法-JAVA语言版(第二版)》作者简介
目录
出版者的话
专家指导委员会
译者序
前言
第1章 Java语言的面向对象编程
1.1 Java入门
1.1.1 变量声明
1.1.2 运算符
1.1.3 选择语句
1.1.4 循环语句
1.1.5 异常处理
1.2 Java面向对象编程
1.2.1 封装
1.2.2 抽象数据类型
1.2.3 继承
1.2.4 多态性
1.3 输入和输出
1.4 Java和指针
1.5 java.util中的向量
1.6 数据结构和面向对象编程
1.7 示例学习:随机存取文件
1.8 习题
1.9 编程作业
参考文献
第2章 复杂性分析
2.1 计算复杂性和渐近复杂性
2.2 大O表示法
2.3 大O表示法的性质
2.4 和表示法
2.5 可能出现的问题
2.6 复杂性示例
2.7 寻找渐近复杂性:示例
2.8 最好的、平均的和最坏的情况
2.9 补偿复杂性
2.10 习题
参考文献
第3章 链表
3.1 单向链表
3.1.1 插入
3.1.2 删除
3.1.3 查找
3.2 双向链表
3.3 循环链表
3.4 跳转表
3.5 自组织表
3.6 稀疏表
3.7 用java.util的链表
3.8 小结
3.9 示例学习:图书馆管理
3.10 习题
3.11 编程作业
参考文献
第4章 堆栈和队列
4.1 堆栈
4.2 队列
4.3 优先级队列
4.4 示例学习:逃离迷宫
4.5 习题
4.6 编程作业
参考文献
第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 java.util中的集合
7.1.9 java.util中的映像
7.2 线索
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.10 欧拉图和哈密顿图
8.10.1 欧拉图
8.10.2 哈密顿图
8.11 图的着色
8.12 图论中的NP完整性问题
8.13 示例学习:典型代表问题
8.14 习题
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 java.util中的排序
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 删除
10.4 理想散列函数
10.4.1 Cichelli方法
10.4.2 FHCD算法,
10.5 可扩展文件的散列函数
10.5.1 可扩展散列
10.5.2 线性散列
10.6 java.util中的散列
10.7 示例学习
10.8 习题
10.9 编程作业
参考文献
第11章 数据压缩
11.1 数据压缩的条件
11.2 赫夫曼编码
11.3 顺串长度编码
11.4 Ziv-Lempel编码
11.5 示例学习:结合运行长度编码的赫夫曼方法
11.6 习题
11.7 编程作业
参考文献
第12章 存储管理
12.1 连续适应方法
12.2 非连续适应方法
12.3 无用单元收集
12.3.1 标记与清除算法
12.3.2 拷贝方法
12.3.3 增量式无用单元收集
12.4 小结
12.5 示例学习:内置无用单元收集器
12.6 习题
12.7 编程作业
参考文献
第13章 字符串匹配
13.1 精确字符串匹配
13.2 近似字符串匹配
13.3 示例学习:最长公共子字符串
13.4 习题
13.5 编程作业
参考文献
附录A 大O的计算
附录B NP完整性
索引
专家指导委员会
译者序
前言
第1章 Java语言的面向对象编程
1.1 Java入门
1.1.1 变量声明
1.1.2 运算符
1.1.3 选择语句
1.1.4 循环语句
1.1.5 异常处理
1.2 Java面向对象编程
1.2.1 封装
1.2.2 抽象数据类型
1.2.3 继承
1.2.4 多态性
1.3 输入和输出
1.4 Java和指针
1.5 java.util中的向量
1.6 数据结构和面向对象编程
1.7 示例学习:随机存取文件
1.8 习题
1.9 编程作业
参考文献
第2章 复杂性分析
2.1 计算复杂性和渐近复杂性
2.2 大O表示法
2.3 大O表示法的性质
2.4 和表示法
2.5 可能出现的问题
2.6 复杂性示例
2.7 寻找渐近复杂性:示例
2.8 最好的、平均的和最坏的情况
2.9 补偿复杂性
2.10 习题
参考文献
第3章 链表
3.1 单向链表
3.1.1 插入
3.1.2 删除
3.1.3 查找
3.2 双向链表
3.3 循环链表
3.4 跳转表
3.5 自组织表
3.6 稀疏表
3.7 用java.util的链表
3.8 小结
3.9 示例学习:图书馆管理
3.10 习题
3.11 编程作业
参考文献
第4章 堆栈和队列
4.1 堆栈
4.2 队列
4.3 优先级队列
4.4 示例学习:逃离迷宫
4.5 习题
4.6 编程作业
参考文献
第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 java.util中的集合
7.1.9 java.util中的映像
7.2 线索
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.10 欧拉图和哈密顿图
8.10.1 欧拉图
8.10.2 哈密顿图
8.11 图的着色
8.12 图论中的NP完整性问题
8.13 示例学习:典型代表问题
8.14 习题
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 java.util中的排序
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 删除
10.4 理想散列函数
10.4.1 Cichelli方法
10.4.2 FHCD算法,
10.5 可扩展文件的散列函数
10.5.1 可扩展散列
10.5.2 线性散列
10.6 java.util中的散列
10.7 示例学习
10.8 习题
10.9 编程作业
参考文献
第11章 数据压缩
11.1 数据压缩的条件
11.2 赫夫曼编码
11.3 顺串长度编码
11.4 Ziv-Lempel编码
11.5 示例学习:结合运行长度编码的赫夫曼方法
11.6 习题
11.7 编程作业
参考文献
第12章 存储管理
12.1 连续适应方法
12.2 非连续适应方法
12.3 无用单元收集
12.3.1 标记与清除算法
12.3.2 拷贝方法
12.3.3 增量式无用单元收集
12.4 小结
12.5 示例学习:内置无用单元收集器
12.6 习题
12.7 编程作业
参考文献
第13章 字符串匹配
13.1 精确字符串匹配
13.2 近似字符串匹配
13.3 示例学习:最长公共子字符串
13.4 习题
13.5 编程作业
参考文献
附录A 大O的计算
附录B NP完整性
索引
猜您喜欢