书籍详情
Java数据结构与面向对象编程基础
作者:[美]Richard Wiener,[美]Lewis J.Pinson著 ;罗英伟,汪小林译
出版社:人民邮电出版社
出版时间:2002-01-01
ISBN:9787115103512
定价:¥42.00
购买这本书可以去
内容简介
本书以Java GUI编程为描述方法,以UML为建模工具,应用面向对象的编程方法研究经典数据结构。全书分两大部分18章。第一部分是第1到8章,介绍了面向对象的编程方法和Java GUI编程方法。第二部分包括第9到18章,着重讨论了一些经典的数据结构,并配有精心设计的实验程序以加强读者对基本概念和原理的理解。附录介绍了UML、算法复杂度的简单概念以及本书所用到的Foundations类库的安装与使用。本书是通过Java语言学习经典数据结构的最新教材,适合高等院校计算机专业学生阅读,也适合希望在Java OOP、GUI编程和数据结构方面有所提高的软件开发人员。
作者简介
Richard Wiener是Colorado大学的计算机科学系副教授,同时也是The Journal of Object-Oriented Programming的主编。他作为作者或合著者,出版了21本教材和专业书籍。在1983年,Richard Wiener荣获Colorado大学年度最佳教师奖。他的研究领域包括面向对象的软件开发、模拟退火和遗传算法、时间序列以及应用统计学等。Lewis J.Pinson是CIC的主席和Colorado大学计算机科学系副教授。他擅长的领域包括计算机软件开发、面向对象的问题求解、遗传算法以及复杂性研究等。他开发和组织了许多关于面向对象的问题求解和面向对象的语言方面的训练课程、高级培训班和工作会议。Pinson博士还是8部书籍的作者或合著者。
目录
第一部分 基础
第1章 OOP基础
1.1 数据抽象
1.2 封装
1.3 对象
1.4 消息
1.5 方法
1.6 类
1.7 继承
1.8 后绑定多态
1.9 抽象类
1.10 接口
1.11 委托
1.12 一般类和接口
1.13 本章小结
1.14 习题
第2章 对象
2.1 引用的语义和创建对象
2.2 对象的赋值、别名和克隆
2.3 相等性测试
2.4 标量类型与引用类型
2.5 标量类型和它们的包装对象类
2.6 包装与解包——对象和标量之间的转换
2.7 字符串
2.8 字符串缓冲区
2.9 数组
2.10 向量
2.11 枚举
2.12 本章小结
2.13 习题
第3章 类的构造
3.1 类和类的使用者之间的责任——契约式设计
3.2 类的组织
3.3 类包
3.4 访问修饰符
3.5 命名习惯
3.6 本章小结
3.7 习题
第4章 类之间的关系
4.1 继承
4.2 聚合
4.3 行为中的类关系——实例分析
4.3.1 规则说明
4.3.2 分析和设计
4.3.3 实现
4.4 本章小结
4.5 习题
第5章 GUI的基本概念
5.1 GUI应用的图形部分
5.2 事件
5.2.1 由事件驱动的应用的特征
5.2.2 Java语言中的事件委托模型
5.3 MVC设计模式
5.3.1 M-VC中的继承方法
5.3.2 M-VC中的委托方法
5.4 本章小结
第6章 在Java中实现简单的 GUI
6.1 创建一个GUI的容器和基本组件
6.1.1 顶层窗口——基础
6.1.2 简单的组件
6.1.3 在窗口中组织和放置组件
6.2 在Java语言中实现事件处理
6.2.1 实现一个EventListener接口的多种选择方式
6.2.2 处理一个点击按钮事件的步骤
6.2.3 在Java 2平台上事件处理方式的例子
6.3 在Java中实现MVC
6.3.1 使用继承方法实现MVC计数器的例子
6.3.2 使用Beans方法实现MVC计数器的例子
6.4 本章小结
6.5 习题
第7章 错误和例外
7.1 例外和错误的分类
7.2 声明例外
7.3 抛出一个例外
7.4 创建例外类
7.5 处理例外
7.6 finally语句
7.7 对前面内容的综合——一个例子
7.8 捕捉运行时期的例外——一个例子
7.9 本章小结
7.10 习题
第8章 递归
8.1 常规递归的属性
8.1.1 重要的属性和术语
8.1.2 执行递归的步骤
8.2 迭代和递归
8.2.1 递归问题的迭代算法
8.2.2 迭代问题的递归算法
8.3 递归的相对复杂性
8.4 单递归和双递归实例
8.5 本章小结
8.6 习题
第二部分 数据结构
第9章 抽象数据类型
9.1 抽象数据类型Counter
9.2 抽象数据类型Fraction的一般属性
9.3 类Fraction的需求
9.4 类Fraction中部分方法的实现细节
9.5 创建一个Fraction实验程序来测试类Fraction
9.6 Fraction的说明文档——由javadoc产生
9.7 本章小结
9.8 习题
第10章 抽象数据类型容器
10.1 容器类的层次结构——顶层
10.2 最简单的容器——堆栈和队列
10.3 辅助性接口和类
10.4 容器类的层次结构
10.4.1 List接口及其后代
10.4.2 BinaryTree接口
10.4.3 SearchTable接口及其后代
10.4.4 接口Dictionary
10.4.5 接口Set
10.4.6 接口Heap
10.5 容器类层次结构的UML描述
10.6 本章小结
10.7 习题
第11章 堆栈和队列
11.1 堆栈
11.2 ArrayStack
11.3 LinkedStack
11.4 ArrayStack和LinkedStack的效率比较
11.5 队列
11.6 LinkedQueue
11.7 Stack/Queue实验程序
11.8 本章小结
11.9 习题
第12章 堆栈的应用
12.1 代数表达式的运算
12.2 变中缀表达式为后缀表达式的算法
12.3 代数函数运算的实现
12.3.1 中缀表达式到后缀表达式的转换
12.3.2 后缀表达式的运算
12.4 函数运算实验程序
12.5 本章小结
12.6 习题
第13章 列表
13.1 Dequeue——列表的一种实现
13.1.1 单链Dequeue
13.1.2 双链Dequeue
13.2 可定位的列表
13.2.1 单链表
13.2.2 双链表
13.3 向量列表
13.4 顺序列表
13.5 列表实验程序
13.6 复习栈和队列
13.7 本章小结
13.8 习题
第14章 树、堆和优先队列
14.1 树
14.1.1 抽象数据类型BinaryTree
14.1.2 表达式二叉树
14.1.3 表达式二叉树实验程序
14.2 堆
14.2.1 抽象数据类型堆
14.2.2 接口Heap的实现
14.2.3 堆实验程序
14.3 优先队列
14.3.1 优先队列的抽象数据类型
14.3.2 用队列向量来实现接口PriorityQueue
14.3.3 用堆来实现优先队列
14.3.4 优先队列实验程序
14.4 本章小结
14.5 习题
第15章 搜索树
15.1 对搜索表的回顾
15.2 二叉搜索树
15.3 在一棵二叉搜索树中查找一个节点
15.4 搜索树的平衡性
15.5 向一棵二叉搜索树中添加一个节点
15.6 从一棵二叉搜索树中删除一个节点
15.7 二叉搜索树的add方法
15.8 二叉搜索树的remove方法
15.9 二叉搜索树的性能
15.10 AVL树
15.11 树的旋转
15.12 AVL的add方法
15.13 AVL的删除
15.14 伸展树
15.15 SplayTree类的实现
15.16 跳跃表
15.17 跳跃表的实现
15.18 对上述内容的综合
15.19 可重用类DrawTree
15.20 本章小结
15.21 习题
第16章 散列表和集合
16.1 散列法和冲突处理
16.2 位操作
16.3 完美的散列函数
16.4 冲突
16.5 Hashtable类
16.6 冲突解决
16.6.1 线性链法
16.6.2 结合链法
16.7 集合
16.8 本章小结
16.9 习题
第17章 关联和字典
17.1 关联抽象数据类型
17.2 Dictionary接口
17.3 实现Dictionary接口
17.3.1 使用Hashtable实现Dictionary接口
17.3.2 使用Vector实现Dictionary接口
17.4 字典实验程序
17.5 OrderedDictionary接口
17.6 实现OrderedDictionary接口
17.7 排序字典实验程序
17.8 本章小结
17.9 习题
第18章 排序
18.1 简单低效的排序法则
18.1.1 选择排序
18.1.2 冒泡排序
18.2 高效的排序算法
18.2.1 快速排序
18.2.2 沟排序
18.3 二分检索
18.4 排序实验程序
18.5 本章小结
18.6 习题
附录
附录A 统一建模语言的概念
附录B 算法复杂度
附录C 安装和使用 Foundations类库
第1章 OOP基础
1.1 数据抽象
1.2 封装
1.3 对象
1.4 消息
1.5 方法
1.6 类
1.7 继承
1.8 后绑定多态
1.9 抽象类
1.10 接口
1.11 委托
1.12 一般类和接口
1.13 本章小结
1.14 习题
第2章 对象
2.1 引用的语义和创建对象
2.2 对象的赋值、别名和克隆
2.3 相等性测试
2.4 标量类型与引用类型
2.5 标量类型和它们的包装对象类
2.6 包装与解包——对象和标量之间的转换
2.7 字符串
2.8 字符串缓冲区
2.9 数组
2.10 向量
2.11 枚举
2.12 本章小结
2.13 习题
第3章 类的构造
3.1 类和类的使用者之间的责任——契约式设计
3.2 类的组织
3.3 类包
3.4 访问修饰符
3.5 命名习惯
3.6 本章小结
3.7 习题
第4章 类之间的关系
4.1 继承
4.2 聚合
4.3 行为中的类关系——实例分析
4.3.1 规则说明
4.3.2 分析和设计
4.3.3 实现
4.4 本章小结
4.5 习题
第5章 GUI的基本概念
5.1 GUI应用的图形部分
5.2 事件
5.2.1 由事件驱动的应用的特征
5.2.2 Java语言中的事件委托模型
5.3 MVC设计模式
5.3.1 M-VC中的继承方法
5.3.2 M-VC中的委托方法
5.4 本章小结
第6章 在Java中实现简单的 GUI
6.1 创建一个GUI的容器和基本组件
6.1.1 顶层窗口——基础
6.1.2 简单的组件
6.1.3 在窗口中组织和放置组件
6.2 在Java语言中实现事件处理
6.2.1 实现一个EventListener接口的多种选择方式
6.2.2 处理一个点击按钮事件的步骤
6.2.3 在Java 2平台上事件处理方式的例子
6.3 在Java中实现MVC
6.3.1 使用继承方法实现MVC计数器的例子
6.3.2 使用Beans方法实现MVC计数器的例子
6.4 本章小结
6.5 习题
第7章 错误和例外
7.1 例外和错误的分类
7.2 声明例外
7.3 抛出一个例外
7.4 创建例外类
7.5 处理例外
7.6 finally语句
7.7 对前面内容的综合——一个例子
7.8 捕捉运行时期的例外——一个例子
7.9 本章小结
7.10 习题
第8章 递归
8.1 常规递归的属性
8.1.1 重要的属性和术语
8.1.2 执行递归的步骤
8.2 迭代和递归
8.2.1 递归问题的迭代算法
8.2.2 迭代问题的递归算法
8.3 递归的相对复杂性
8.4 单递归和双递归实例
8.5 本章小结
8.6 习题
第二部分 数据结构
第9章 抽象数据类型
9.1 抽象数据类型Counter
9.2 抽象数据类型Fraction的一般属性
9.3 类Fraction的需求
9.4 类Fraction中部分方法的实现细节
9.5 创建一个Fraction实验程序来测试类Fraction
9.6 Fraction的说明文档——由javadoc产生
9.7 本章小结
9.8 习题
第10章 抽象数据类型容器
10.1 容器类的层次结构——顶层
10.2 最简单的容器——堆栈和队列
10.3 辅助性接口和类
10.4 容器类的层次结构
10.4.1 List接口及其后代
10.4.2 BinaryTree接口
10.4.3 SearchTable接口及其后代
10.4.4 接口Dictionary
10.4.5 接口Set
10.4.6 接口Heap
10.5 容器类层次结构的UML描述
10.6 本章小结
10.7 习题
第11章 堆栈和队列
11.1 堆栈
11.2 ArrayStack
11.3 LinkedStack
11.4 ArrayStack和LinkedStack的效率比较
11.5 队列
11.6 LinkedQueue
11.7 Stack/Queue实验程序
11.8 本章小结
11.9 习题
第12章 堆栈的应用
12.1 代数表达式的运算
12.2 变中缀表达式为后缀表达式的算法
12.3 代数函数运算的实现
12.3.1 中缀表达式到后缀表达式的转换
12.3.2 后缀表达式的运算
12.4 函数运算实验程序
12.5 本章小结
12.6 习题
第13章 列表
13.1 Dequeue——列表的一种实现
13.1.1 单链Dequeue
13.1.2 双链Dequeue
13.2 可定位的列表
13.2.1 单链表
13.2.2 双链表
13.3 向量列表
13.4 顺序列表
13.5 列表实验程序
13.6 复习栈和队列
13.7 本章小结
13.8 习题
第14章 树、堆和优先队列
14.1 树
14.1.1 抽象数据类型BinaryTree
14.1.2 表达式二叉树
14.1.3 表达式二叉树实验程序
14.2 堆
14.2.1 抽象数据类型堆
14.2.2 接口Heap的实现
14.2.3 堆实验程序
14.3 优先队列
14.3.1 优先队列的抽象数据类型
14.3.2 用队列向量来实现接口PriorityQueue
14.3.3 用堆来实现优先队列
14.3.4 优先队列实验程序
14.4 本章小结
14.5 习题
第15章 搜索树
15.1 对搜索表的回顾
15.2 二叉搜索树
15.3 在一棵二叉搜索树中查找一个节点
15.4 搜索树的平衡性
15.5 向一棵二叉搜索树中添加一个节点
15.6 从一棵二叉搜索树中删除一个节点
15.7 二叉搜索树的add方法
15.8 二叉搜索树的remove方法
15.9 二叉搜索树的性能
15.10 AVL树
15.11 树的旋转
15.12 AVL的add方法
15.13 AVL的删除
15.14 伸展树
15.15 SplayTree类的实现
15.16 跳跃表
15.17 跳跃表的实现
15.18 对上述内容的综合
15.19 可重用类DrawTree
15.20 本章小结
15.21 习题
第16章 散列表和集合
16.1 散列法和冲突处理
16.2 位操作
16.3 完美的散列函数
16.4 冲突
16.5 Hashtable类
16.6 冲突解决
16.6.1 线性链法
16.6.2 结合链法
16.7 集合
16.8 本章小结
16.9 习题
第17章 关联和字典
17.1 关联抽象数据类型
17.2 Dictionary接口
17.3 实现Dictionary接口
17.3.1 使用Hashtable实现Dictionary接口
17.3.2 使用Vector实现Dictionary接口
17.4 字典实验程序
17.5 OrderedDictionary接口
17.6 实现OrderedDictionary接口
17.7 排序字典实验程序
17.8 本章小结
17.9 习题
第18章 排序
18.1 简单低效的排序法则
18.1.1 选择排序
18.1.2 冒泡排序
18.2 高效的排序算法
18.2.1 快速排序
18.2.2 沟排序
18.3 二分检索
18.4 排序实验程序
18.5 本章小结
18.6 习题
附录
附录A 统一建模语言的概念
附录B 算法复杂度
附录C 安装和使用 Foundations类库
猜您喜欢