书籍详情

数据抽象和问题求解:Java语言描述

数据抽象和问题求解:Java语言描述

作者:(美)Frank M. Carrano,(美)Janet J. Prichard著;韩志宏译;韩志宏译

出版社:清华大学出版社

出版时间:2005-04-01

ISBN:9787302099468

定价:¥68.00

购买这本书可以去
内容简介
  本书全面系统地讲述了如何利用Java语言来解决实际问题,重点剖析了数据结构和数据抽象的核心概念,并通过大量实例向读者展示了面向对象程序设计理念的精髓。本书表述严谨、推理缜密,适合作为计算机及相关专业本科阶段的教材,也是一本技术含量很高的专业参考书。本书特色◆提供丰富的实例,演示各种抽象数据类型的应用方法。◆详细剖析重要概念的程序代码,帮助读者快速掌握核心技术。◆精心没置“自我测试”、“练习题”、“编程问题”等环节,以利于课堂教学。◆知识点全面,语言通俗易懂,可同时满足初、中级读者的学习需求。
作者简介
  Frank M.CalTano:Syraccuse大学博士毕业,现任Rhode Islland大学计算机、科学系教授。主要研究方向为数据抽象技术、教育软件及多媒体技术。曾编写多本计算机书籍,如 《Problem Solving and Data Abstraction with C++ Walls and Mirrors》、《Intermete Problem Slovingand Data Strructures Walls and Mirrors》等。
目录

第I部分 问题求解技术
 第1章 编程原理与软件工程
 1. 1 问题求解与软件工程
 1. 1. 1 问题求解的含义
 1. 1. 2 软件的生命周期
 1. 1. 3 优秀解决方案的定义
 1. 2 模块化设计
 1. 2. 1 抽象与信息隐藏
 1. 2. 2 面向对象的设计
 1. 2. 3 自上而下的设计
 1. 2. 4 一般设计原则
 1. 3 关键编程问题
 1. 3. 1 模块化
 1. 3. 2 可修改
 1. 3. 3 易用
 1. 3. 4 防故障编程
 1. 3. 5 风格
 1. 3. 6 调试
 1. 4 小结
 1. 5 提示
 1. 6 自我测试题
 1. 7 练习题
 1. 8 编程问题
 第2章 递归:镜子
 2. 1 递归解决方案
 2. 1. 1 递归值方法:n的阶乘
 2. 1. 2 递归void方法:逆置字符串
 2. 2 计数
 2. 2. 1 兔子繁殖
 2. 2. 2 组织游行队伍
 2. 2. 3 Spock的困惑
 2.3 数组查找
 2. 3. 1 查找数组最大项
 2. 3. 2 折半查找
 2. 3. 3 查找数组中第k个最小项
 2. 4 组织数据
 2. 5 递归与效率
 2. 6 小结
 2. 7 提示
 2. 8 自我测试题
 2. 9 练习题
 2. 10 编程问题
 第3章 数据抽象:墙
 3. 1 抽象数据类型
 3. 2 指定ADT
 3. 2. 1 ADT列表
 3. 2. 2 ADT有序表
 3. 2. 3 设计ADT
 3. 2. 4 公理
 3. 3 实现ADT
 3. 3. 1 Java类
 3. 3. 2 Java接口
 3. 3. 3 Java异常
 3. 3. 4 基于数组的ADT列表实现
 3. 4 小结
 3. 5 提示
 3. 6 自我测试题
 3. 7 练习题
 3. 8 编程问题
 第4章 链表
 4. 1 预备知识
 4. 1. 1 对象引用
 4. 1. 2 变长数组
 4. 1. 3 基于引用的链表
 4. 2 链表编程
 4. 2. 1 显示链表内容
 4. 2. 2 从链表中删除指定节点
 4. 2. 3 在链表特殊位置插入节点
 4. 2. 4 ADT列表的基于引用的实现
 4. 2. 5 比较基于数组的实现和基于引用的实现
 4. 2. 6 将链表传给方法
 4. 2. 7 递归地处理链表
 4. 3 链表的各种变化
 4. 3. 1 尾引用
 4. 3. 2 循环链表
 4. 3. 3 虚拟头节点
 4. 3. 4 双向链表
 4. 4 清单应用程序
 4. 5 小结
 4. 6 提示
 4. 7 自我测试题
 4. 8 练习题
 4. 9 编程问题
 第5章 递归问题求解技术
 5. 1 回溯
 5. 2 定义语言
 5. 2. 1 语法知识基础
 5. 2. 2 两种简单语言
 5. 2. 3 代数表达式
 5. 3 递归和数学归纳法的关系
 5. 3. 1 factorial递归算法的正确性
 5. 3. 2 Hanoi塔的成本
 5. 4 小结
 5. 5 提示
 5. 6 自我测试题
 5. 7 练习题
 5. 8 编程问题
 第II部分 使用抽象数据类型解决问题
 第6章 栈
 6. 1 抽象数据类型
 6. 2 ADT栈的简单应用
 6. 2. 1 检查括号匹配
 6. 2. 2 识别语言中的字符串
 6. 3 ADT栈的实现
 6. 3. 1 ADT栈的基本数组的实现
 6. 3. 2 ADT栈的基于引用的实现
 6. 3. 3 使用ADT列表的实现
 6. 3. 4 各种实现方式的比较
 6. 4 应用:代数表达式
 6. 4. 1 计算后缀表达式
 6. 4. 2 中缀表达式与后缀表达式的等价转换
 6. 5 应用:查找问题
 6. 5. 1 使用栈的非递归解决方案
 6. 5. 2 递归解决方案
 6. 6 栈和递归的关系
 6. 7 小结
 6. 8 提示
 6. 9 自我测试题
 6. 10 练习题
 6. 11 编程问题
 第7章 队列
 7. 1 ADT队列
 7. 2 ADT队列的简单应用
 7. 2. 1 读取字符串
 7. 2. 2 识别回文
 7. 3 实现ADT队列
 7. 3. 1 基于引用的实现
 7. 3. 2 基于数组的实现
 7. 3. 3 用ADT列表的实现
 7. 3. 4 实现比较
 7. 4 基于位置的ADT总览
 7. 5 模拟应用
 7. 6 小结
 7. 7 提示
 7. 8 自我测试题
 7. 9 练习题
 7. 10 编程问题
 第8章 类关系
 8. 1 继承
 8. 1. 1 Java包
 8. 1. 2 Java访问修饰符
 8. 1. 3 is-a和has-a关系
 8. 2 动态绑定和抽象类
 8. 2. 1 抽象类
 8. 2. 2 Java接口
 8. 3 ADT列表和有序表
 8.3.1 列表迭代器的实现
 8. 3. 2 使用ADT列表的ADT有序表的实现
 8. 4 面向对象方法的优势
 8. 5 小结
 8. 6 提示
 8. 7 自我测试题
 8. 8 练习题
 8. 9 编程问题
 第9章 算法效率和排序
 9. 1 确定算法效率
 9. 1. 1 算法的执行时间
 9. 1. 2 算法增率
 9. 1. 3 数量阶分析和大O表示法
 9. 1. 4 正确分析问题
 9. 1. 5 查找算法的效率
 9. 2 排序算法及其效率
 9. 2. 1 选择排序
 9. 2. 2 起泡排序
 9. 2. 3 插入排序
 9. 2. 4 归并排序
 9. 2. 5 快速排序
 9. 2. 6 基数排序
 9. 2. 7 各种排序算法的比较
 9. 3 小结
 9. 4 提示
 9. 5 自我测试题
 9. 6 练习题
 9. 7 编程问题
 第10章 树
 10. 1 术语
 10. 2 ADT二叉树
 10. 2. 1 ADT二叉树的基本操作
 10. 2. 2 ADT二叉树的一般操作
 10. 2. 3 二叉树的遍历
 10. 2. 4 二叉树的表示
 10. 2. 5 ADT二叉树的基于引用的实现
 10. 2. 6 用迭代器遍历树
 10. 3 ADT二叉查找树
 10. 3. 1 ADT二叉查找树的操作算法
 10. 3. 2 ADT二叉查找树的基于引用的实现
 10. 3. 3 二叉查找树操作的效率
 10. 3. 4 树排序
 10. 3. 5 将二叉查找树保存到文件
 10. 4 一般树
 10. 5 小结
 10. 6 提示
 10. 7 自我测试题
 10. 8 练习题
 10. 9 编程问题
 第11章 表和优先队列
 11. 1 ADT表
 11. 1. 1 选择实现
 11. 1. 2 ADT表的基于数组的有序实现
 11. 1. 3 ADT表的二叉查找树实现
 11. 2 ADT优先队列:ADT表的变体
 11. 2. 1 堆
 11. 2. 2 ADT优先队列的堆实现
 11. 2. 3 堆排序
 11. 3 小结
 11. 4 提示
 11. 5 自我测试题
 11. 6 练习题
 11. 7 编程问题
 第12章 表的高级实现
 12. 1 平衡查找树
 12. 1. 1 2-3树
 12. 1. 2 2-3-4树
 12. 1. 3 红-黑树
 12. 1. 4 AVL树
 12. 2 散列
 12. 2. 1 散列函数
 12. 2. 2 解决冲突
 12. 2. 3 散列效率
 12. 2. 4 如何确立散列函数
 12. 2. 5 表遍历:散列的低效操作
 12. 3 按多种形式组织数据
 12. 4 小结
 12. 5 提示
 12. 6 自我测试题
 12. 7 练习题
 12. 8 编程问题
 第13章 图
 13. 1 术语
 13. 2 将图作为ADT
 13. 3 图的遍历
 13. 3. 1 深度优先查找
 13. 3. 2 广度优先查找
 13. 4 图的应用
 13. 4. 1 拓扑排序
 13. 4. 2 生成树
 13. 4. 3 最小生成树
 13. 4. 4 最短路径
 13. 4. 5 回路
 13. 4. 6 一些复杂问题
 13. 5 小结
 13. 6 提示
 13. 7 自我测试题
 13. 8 练习题
 13. 9 编程问题
 第14章 外部方法
 14. 1 了解外部存储
 14. 2 排序外部文件的数据
 14. 3 外部表
 14. 3. 1 确定外部文件的索引
 14. 3. 2 外部散列
 14. 3. 3 B-树
 14. 3. 4 遍历
 14. 3. 5 多索引
 14. 4 小结
 14. 5 提示
 14. 6 自我测试题
 14. 7 练习题
 14. 8 编程练习
 附录A Java基本原理
 A. 1 程序结构
 A. 1. 1 包
 A. 1. 2 类
 A. 1. 3 数据字段
 A. 1. 4 方法
 A. 1. 5 对象成员的访问方法
 A. 2 Java语言基础知识
 A. 2. 1 注释
 A. 2. 2 标识符和关键词
 A. 2.3 变量
 A. 2. 4 基本数据类型
 A. 2. 5 引用
 A. 2. 6 字面常量
 A. 2. 7 命名常量
 A. 2. 8 赋值和表达式
 A. 2. 9 数组
 A. 3 有用的Java类
 A. 3. 1 Object类
 A. 3. 2 字符串类
 A. 4 Java异常
 A. 4. 1 捕获异常
 A. 4. 2 抛出异常
 A. 5 文本输入和输出
 A. 5. 1 输入
 A. 5. 2 输出
 A. 6 选择语句
 A. 6. 1 if语句
 A. 6. 2 switch语句
 A. 7 迭代语句
 A. 7. 1 while语句
 A. 7. 2 for语句
 A. 7. 3 do语句
 A. 8 文件输入和输出
 A. 8. 1 文本文件
 A. 8. 2 对象串行化
 A. 9 比较Java和C++
 A. 10 小结
 A. 11 提示
 附录B 统一字符代码
 附录C Java资源
 C. 1 Java Web站点
 C. 2 使用Java 2软件开发包
 附录D 数字归纳法
 D.1 公理1
 D.2 公理2
 D.3 自我测试题
 D.4 练习题
 附录E Java操作符
</font>
猜您喜欢

读书导航