新書推薦:
《
8秒按压告别疼痛
》
售價:HK$
87.4
《
津巴多时间心理学:挣脱束缚、改写命运的6种时间观
》
售價:HK$
77.3
《
大英博物馆东南亚简史
》
售價:HK$
177.0
《
纯粹·我只要少许
》
售價:HK$
80.6
《
投机苦旅:一位投机客的凤凰涅槃
》
售價:HK$
88.5
《
重返马赛渔场:社会规范与私人治理的局限
》
售價:HK$
69.4
《
日子慢慢向前,事事慢慢如愿
》
售價:HK$
55.8
《
场景供应链金融:将风口变成蓝海
》
售價:HK$
111.8
編輯推薦:
本书采用了一种独特的方法,将每个数据结构的接口(如何使用数据结构)与其实现(如何对数据结构进行编程)清晰地分离开来。从抽象思维和解决问题的角度提供了对数据结构和Java的实用介绍。全书主要分为五个部分,第一部分描述了贯穿全文的Java语言和面向对象编程的基础知识。第二部分讨论了算法和构成要素,包括大O、递归、随机化等内容。第三部分展示了几个经典的研究案例。第四部分介绍了每种数据结构的实现。第五部分讨论了适用于高级课程的数据结构。
內容簡介:
本书从介绍什么是数据结构开始,继而对高级数据结构与算法进行分析。本书以独特的方式,清晰地将每种数据结构的接口与其实现分离开来,即将如何使用数据结构与如何对数据结构编程相分离,本书从抽象思维和问题求解的角度出发,为数据结构和算法提供实用的介绍,并采用现今流行的Java编程语言来实现,是数据结构与算法分析的理想教材。
關於作者:
马克·艾伦·维斯(Mark Allen Weiss) 佛罗里达国际大学工程与计算学院杰出教授、副院长。他于1983年获得库伯高级科学艺术联合学院电子工程学士学位,并于1987年获得普林斯顿大学计算机科学博士学位。他是IEEE、AAAS会士和ACM杰出教育家。曾获SIGCSE计算机科学教育杰出贡献奖、IEEE泰勒·布斯教育奖、IEEE威廉·塞尔教育奖、ACM卡尔斯特罗姆杰出教育家奖。
目錄 :
目 录
Data Structures and Problem Solving Using Java, Fourth Edition
译者序
前言
第一部分 Java之旅
第1章 Java的基本特性 2
1.1 总体运行环境 2
1.2 第一个程序 3
1.2.1 注释 3
1.2.2 main 3
1.2.3 终端输出 4
1.3 Java的基本类型 4
1.3.1 基本类型 4
1.3.2 常量 4
1.3.3 基本类型的声明和初始化 5
1.3.4 终端输入和输出 5
1.4 基本运算符 5
1.4.1 赋值运算符 5
1.4.2 二元算术运算符 6
1.4.3 一元运算符 6
1.4.4 类型转换 7
1.5 条件语句 7
1.5.1 关系运算符和相等运算符 7
1.5.2 逻辑运算符 8
1.5.3 if语句 8
1.5.4 while语句 9
1.5.5 for语句 9
1.5.6 do语句 10
1.5.7 break和continue语句 11
1.5.8 switch语句 11
1.5.9 条件运算符 12
1.6 方法 12
1.6.1 方法名的重载 13
1.6.2 存储类 13
1.7 总结 13
1.8 核心概念 14
1.9 常见错误 15
1.10 网络资源 15
1.11 练习 15
1.12 参考文献 16
第2章 引用类型 18
2.1 什么是引用 18
2.2 对象和引用的基础知识 19
2.2.1 点运算符 19
2.2.2 对象的声明 20
2.2.3 垃圾收集 20
2.2.4 =的含义 21
2.2.5 参数传递 22
2.2.6 ==的含义 22
2.2.7 没有对象的运算符重载 23
2.3 字符串 23
2.3.1 字符串操作的基础 23
2.3.2 字符串连接 23
2.3.3 字符串比较 24
2.3.4 其他String方法 24
2.3.5 将其他类型转换为字符串 24
2.4 数组 25
2.4.1 声明、赋值和方法 25
2.4.2 动态数组扩展 27
2.4.3 ArrayList 29
2.4.4 多维数组 30
2.4.5 命令行参数 31
2.4.6 增强的for循环 31
2.5 异常处理 32
2.5.1 处理异常 32
2.5.2 finally子句 33
2.5.3 常见的异常 33
2.5.4 throw和throws子句 34
2.6 输入和输出 35
2.6.1 基本的流操作 35
2.6.2 Scanner类型 36
2.6.3 顺序文件 38
2.7 总结 40
2.8 核心概念 40
2.9 常见错误 41
2.10 网络资源 42
2.11 练习 42
2.12 参考文献 45
第3章 对象和类 46
3.1 什么是面向对象程序设计 46
3.2 简单示例 47
3.3 javadoc 48
3.4 基本方法 50
3.4.1 构造方法 50
3.4.2 设置方法和访问方法 51
3.4.3 输出和toString 52
3.4.4 equals 52
3.4.5 main 52
3.5 示例:使用java.math.
BigInteger 52
3.6 其他结构成分 54
3.6.1 this引用 54
3.6.2 用于构造方法的this简写 55
3.6.3 instanceof运算符 55
3.6.4 实例成员和静态成员 55
3.6.5 静态域和方法 55
3.6.6 静态初始化程序 57
3.7 示例:实现BigRational类 58
3.8 包 61
3.8.1 import指令 61
3.8.2 package语句 62
3.8.3 CLASSPATH环境变量 63
3.8.4 包可见性规则 64
3.9 设计模式:复合 64
3.10 总结 65
3.11 核心概念 66
3.12 常见错误 67
3.13 网络资源 67
3.14 练习 67
3.15 参考文献 71
第4章 继承 72
4.1 什么是继承 72
4.1.1 创建新的类 72
4.1.2 类型兼容性 76
4.1.3 动态调度和多态 76
4.1.4 继承层次结构 77
4.1.5 可见性规则 77
4.1.6 构造方法和super 78
4.1.7 final方法和类 79
4.1.8 覆盖一个方法 80
4.1.9 再次讨论类型兼容性 81
4.1.10 数组类型的兼容性 82
4.1.11 协变返回类型 82
4.2 设计层次结构 83
4.2.1 抽象方法和类 85
4.2.2 为未来而设计 86
4.3 多继承 87
4.4 接口 88
4.4.1 规范接口 89
4.4.2 实现一个接口 89
4.4.3 多接口 90
4.4.4 接口是抽象类 90
4.5 Java中的基本继承 90
4.5.1 Object类 90
4.5.2 异常的层次结构 90
4.5.3 I/O:装饰器模式 92
4.6 使用继承实现泛型组件 94
4.6.1 Object用于泛型 94
4.6.2 基本类型的包装类 96
4.6.3 装箱/拆箱 97
4.6.4 适配器:改变接口 97
4.6.5 为泛型使用接口类型 98