书籍详情

数据结构——Java版

数据结构——Java版

作者:(美)D.S.Malik,(美)P.S.Nair著;杨浩译

出版社:清华大学出版社

出版时间:2004-05-01

ISBN:9787302083290

定价:¥82.00

购买这本书可以去
内容简介
  本书是计算机科学专业的权威教程。书中通过大量简明清晰的说明和示例,运用Java成功地描述了各种算法。内容涉及到数据结构课程的所有知识点,包括结构化模板库、二叉树、图的算法,以及搜索和排序等。本书结构特色:·编程示例——每一章的最后都包含多个完整的示例程序,这些示例不仅给出了详细的输入、输出、问题分析和算法设计,还提供了完整的程序清单。·快速回顾——这部分总结了每章提出的所有概念。·练习题——测试学生判断各个声明和语句是否正确的能力。·编程练习——学生可以按照指定的要求编写Java程序。·注意——强调与各个概念相关的重要内容。·带编号的示例——通过相关代码说明各种编程思想。
作者简介
  D.S.Malik是Creighton大学的数学和计算机科学系教授,他于1985年在Creighton大学获得博士学位后,就一直在该大学从事计算机教学工作。目前,他已经表了45篇论文,出版了6本著作,涉及抽象代数、模糊自控理论和语言、模糊逻辑及其应用、信息科学等领域。相关图书
目录
第1章 软件工程基本原理和Java类
1.1 软件的生命周期
1.2 软件开发阶段
1.2.1 分析阶段
1.2.2 设计阶段
1.2.3 实现阶段
1.2.4 测试和调试
1.3 算法分析:大O表示法
1.4 用户定义的类
1.4.1 构造函数
1.4.2 统一建模语言图
1.4.3 变量声明和对象实例化
1.4.4 访问类的成员
1.4.5 类的内置运算
1.4.6 赋值运算符和类
1.4.7 类的作用域
1.4.8 定义类Clock的构造函数和方法
1.4.9 拷贝构造函数
1.4.10 类和方法toString
1.4.11 类的静态成员
1.4.12 类的静态变量(数据成员)
1.4.13 析构函数
1.4.14 创建自己的包
1.4.15 多文件程序
1.4.16 引用this
1.4.17 内部类
1.5 抽象数据类型
1.6 编程示例:糖果机
1.6.1 问题分析和算法设计
1.6.2 收银机
1.6.3 自动售货机
1.6.4 主程序
1.7 标识类、对象和操作
1.8 快速总结
1.9 练习题
1.10 编程练习
第2章 继承和异常处理
2.1 继承
2.1.1 在子类中使用超类的方法
2.1.2 子类与超类的构造函数
2.1.3 类的受保护成员
2.1.4 类Object
2.1.5 超类和子类的对象
2.1.6 运算符instanceof
2.2 抽象方法和抽象类
2.3 聚合
2.4 异常处理
2.4.1 Java异常层次结构
2.4.2 异常层次结构
2.4.3 已解析的异常和未解析的异常
2.4.4 处理程序中的异常
2.4.5 抛出和重新抛出异常
2.4.6 异常处理技术
2.4.7 创建自己的异常类
2.5 编程示例:成绩报告单
2.5.1 问题分析与算法设计
2.5.2 主程序
2.5.3 程序清单
2.6 快速总结
2.7 练习题
2.8 编程练习
第3章 基于数组的表
3.1 表元素的类型
3.1.1 类IntElement
3.1.2 类StringElement
3.2 类ArrayListClass
3.2.1 拷贝构造函数
3.2.2 方法copyList
3.3 无序表
3.3.1 搜索
3.3.2 插入
3.3.3 删除
3.3.4 各种表操作的时间复杂度
3.4 类Vector
3.5 编程示例:多项式的运算
3.6 快速回顾
3.7 练习题
3.8 编程练习
第4章 链表
4.1 链表
4.1.1 链表的一些属性
4.1.2 遍历链表
4.2 链表元素的插入和删除
4.2.1 插入
4.2.2 删除
4.3 构建链表
4.3.1 正向构建链表
4.3.2 反向构建链表
4.4 ADT链表
4.4.1 链表的长度
4.4.2 检索第一个节点和最后一个节点的数据
4.4.3 在链表头插入节点
4.4.4 在链表尾插入节点
4.4.5 复制链表
4.4.6 拷贝构造函数
4.4.7 copyList方法
4.4.8 类LinkedListClass的定义
4.5 无序链表
4.5.1 搜索链表
4.5.2 删除节点
4.6 有序链表
4.6.1 搜索链表
4.6.2 插入节点
4.6.3 删除节点
4.7 双向链表
4.7.1 默认构造函数
4.7.2 isEmptyList
4.7.3 初始化链表
4.7.4 链表的长度
4.7.5 输出链表
4.7.6 反向输出链表
4.7.7 搜索链表
4.7.8 第一个和最后一个元素
4.7.9 插入节点
4.7.10 删除节点
4.8 带有头节点和尾节点的链表
4.9 循环链表
4.10 编程示例:音像店
4.11 快速回顾
4.12 练习题
4.13 编程练习
第5章 递归
5.1 递归的定义
5.1.1 直接递归和间接递归
5.1.2 无穷递归
5.2 使用递归法解决问题
5.3 编程示例:将十进制数转换为二进制数
5.4 编程示例:Sierpinski gasket
5.4.1 问题分析和算法设计
5.4.2 完整的程序清单
5.5 使用递归还是迭代
5.6 递归和回溯:8-皇后问题
5.6.1 回溯
5.6.2 n-皇后问题
5.6.3 回溯和4-皇后问题
5.6.4 8-皇后问题
5.7 快速回顾
5.8 练习题
5.9 编程练习
第6章 堆栈
6.1 堆栈
6.2 StackException类
6.3 使用数组实现堆栈
6.3.1 初始化堆栈
6.3.2 空堆栈
6.3.3 满堆栈
6.3.4 入栈
6.3.5 返回栈顶元素
6.3.6 出栈
6.3.7 复制
6.3.8 构造函数
6.3.9 拷贝构造函数
6.3.10 CopyStack方法
6.4 编程示例:求最高GPA
6.5 把堆栈实现为链表
6.5.1 默认构造函数
6.5.2 初始化堆栈
6.5.3 入栈
6.5.4 返回栈顶元素
6.5.5 出栈
6.6 由类LinkedListClass派生而来的堆栈
6.7 堆栈的应用:后缀表达式计算器
6.7.1 主算法
6.7.2 方法evaluateExpression
6.7.3 方法evaluateOpr
6.7.4 方法printResult
6.7.5 完整的程序清单
6.8 后缀表达式计算器:图形用户界面(GUI)
6.9 消除递归:反向打印链表的非递归算法
6.10 类Stack
6.11 快速回顾
6.12 练习题
6.13 编程练习
第7章 队列
7.1 队列
7.2 队列的异常类
7.3 队列的数组实现
7.4 队列的链表实现
7.5 从类LinkedListClass派生而来的队列
7.6 优先队列
7.7 队列的应用:模拟
7.7.1 设计队列系统
7.7.2 客户
7.7.3 服务器
7.7.4 服务器表
7.7.5 等待客户的队列
7.7.6 主程序
7.8 快速回顾
7.9 练习题
7. 10 编程练习
第8章 搜索算法
8.1 搜索算法
8.1.1 顺序搜索
8.1.2 顺序搜索算法分析
8.1.3 有序表
8.1.4 二叉树搜索
8.1.5 二叉树搜索算法的性能
8.1.6 将数据项插入有序表
8.2 基于比较的搜索算法的下限
8.3 散列算法
8.3.1 散列函数:示例
8.3.2 冲突的解决
8.3.3 冲突的解决:开型寻址法
8.3.4 二次探测
8.3.5 删除:开型寻址法
8.3.6 散列算法:使用二次探测来实现
8.3.7 冲突的解决:链地址法(开散列方法)
8.3.8 散列法性能分析
8.4 快速回顾
8.5 练习题
8.6 编程练习
第9章 排序算法
9.1 排序算法
9.2 选择排序: 基于数组的表
9.3 插入排序: 基于数组的表
9.4 插入排序: 基于链表的表
9.5 基于比较的排序算法的下限
9.6 快速排序:基于数组的表
9.7 归并排序: 基于链表的表
9.7.1 划分
9.7.2 归并
9.7.3 分析:归并排序
9.8 堆排序: 基于数组的表
9.8.1 构建堆
9.8.2 分析:堆排序
9.9 再论优先级队列
9.9.1 在优先级队列中插入一个元素
9.9.2 从优先级队列删除一个元素
9.10 编程示例:选举结果
9.10.1 问题分析和算法设计
9.10.2 主程序
9.10.3 对姓名排序
9.10.4 处理投票数据
9.10.5 计算选票数的总和
9.10.6 打印标题和结果
9.11 快速回顾
9.12 练习题
9.13 编程练习
第10章 二叉树
10.1 二叉树
10.2 二叉树的遍历
10.2.1 中序遍历
10.2.2 前序遍历
10.2.3 后序遍历
10.2.4 二叉树的实现
10.3 二叉搜索树
10.3.1 search方法
10.3.2 Insert方法
10.3.3 Delete方法
10.4 二叉搜索树分析
10.5 二叉树的非递归遍历算法
10.5.1 非递归的中序遍历算法
10.5.2 非递归的前序遍历算法
10.5.3 非递归的后序遍历算法
10.6 AVL(平衡)树
10.6.1 AVL树的插入操作
10.6.2 AVL树的旋转
10.6.3 AVL树的删除操作
10.6.4 AVL树的性能分析
10.7 编程示例:音像店
10.8 快速回顾
10.9 练习题
10.10 编程练习
第11章 图
11.1 图的简史
11.2 图的定义和符号
11.3 图的表示方法
11.3.1 邻接矩阵
11.3.2 邻接表
11.4 图的操作
11.5 图的ADT定义
11.6 图的遍历
11.6.1 深度优先遍历
11.6.2 广度优先遍历
11.7 最短路径算法
11.8 最小生成树
11.9 拓扑排序
11.10 快速回顾
11.11 练习题
11.12 编程练习
附录A 保留字
附录B 运算符优先级
附录C 字符集
附录D 包和用户定义的类
附录E Java类
附录F 针对C++程序员的JAVA介绍
附录G 参考文献
附录H 部分习题答案
猜您喜欢

读书导航