图书介绍

面向对象数据结构与软件开发 Java版2025|PDF|Epub|mobi|kindle电子书版本百度云盘下载

面向对象数据结构与软件开发 Java版
  • Jean-Paul Tremblay,Grant A.Cheston著;李晔,林波,詹文军译 著
  • 出版社: 北京:清华大学出版社
  • ISBN:7302099502
  • 出版时间:2005
  • 标注页数:1036页
  • 文件大小:54MB
  • 文件页数:1061页
  • 主题词:JAVA语言-程序设计

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

面向对象数据结构与软件开发 Java版PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

目录1

1.1 介绍1

第1章 软件开发1

1.2 软件开发过程2

1.3 评估软件质量4

1.3.1 软件产品中的质量因素4

1.3.2 衡量软件质量7

1.4 软件设计原则8

1.4.1 模块化和本地化8

1.4.2 抽象和信息隐藏9

1.4.3 松散耦合度和高内聚度10

1.5 软件设计方法11

1.5.1 自上而下的设计方法12

1.5.2 组合式(自下而上)设计13

1.5.3 面向对象设计14

1.6 小结14

第2章 Java基础15

2.2 注释和空白15

2.1 简介15

2.3 命名约定16

2.4 数据类型16

2.4.1 基本类型16

2.4.2 引用类型17

2.5 字面量和常量18

2.6 运算符18

2.6.1 算术运算符18

2.6.2 增量和减量运算符18

2.6.3 关系运算符19

2.6.4 布尔运算符19

2.6.5 运算的面向对象表示法20

2.6.6 字符串运算20

2.7.1 赋值语句22

2.7 基本语句22

2.7.2 用于控制台输入和输出的语句23

2.7.3 声明语句24

2.7.5 if语句25

2.7.4 复合语句或块25

2.7.6 While语句26

2.7.7 for语句27

2.7.8 Switch语句28

2.8 方法30

2.9 类声明31

2.10 Java程序33

2.11 对象34

2.11.1 打印对象35

2.11.2 对象等同性36

2.11.3 this对象37

2.11.4 可访问性37

2.12 继承性38

2.13 实参传递41

2.14 修复程序错误43

2.14.1 编译时错误44

2.14.2 运行时错误44

2.14.3 针对错误输出的调试技术45

2.15 I/O到文本文件46

2.16 Java虚拟机47

2.17 图形用户界面I/O48

2.18 小结50

第3章 对象和类52

3.1 介绍52

3.2 模型和建模52

3.3 对象53

3.3.1 什么是对象54

3.3.2 状态55

3.3.3 行为56

3.3.4 接口57

3.3.6 对象类型58

3.3.5 标识58

3.4 类和实例59

3.5.1 继承61

3.5 描述类交互作用的关系61

3.5.2 聚合64

3.5.4 类图65

3.5.3 关联65

3.5.5 由语言支持的关系66

3.6 小结67

第4章 数组和字符串68

4.1 一个数组应用程序和问题分析68

4.2 Java中的数组69

4.3 问题解决方案72

4.4 引用类型的存储结构、赋值和等同性74

4.5 字符串77

4.6 StringBuffer类79

4.7 小结80

4.8 Java的新特性80

第5章 数组算法及其分析83

5.1 算法分析83

5.1.1 时间复杂度分析84

5.1.2 从实验角度比较时间复杂度104

5.1.3 空间复杂度比较104

5.2.1 线性搜索105

5.2 查找105

5.2.2 折半查找107

5.3 排序109

5.3.1 冒泡排序109

5.3.2 归并排序110

5.4 对象比较、接口以及对象类简介115

5.5 数组字典120

5.5.1 基本字典120

5.5.2 基本关键字字典129

5.6 小结135

5.7 Java的新特性135

第6章 抽象数据类型及其实现137

6.1 简介137

6.2 数据类型137

6.3 抽象数据类型139

6.3.1 简介139

6.3.2 公理法140

6.3.3 构建法147

6.3.4 后置条件法151

6.4 Java中的抽象数据类型及实现154

6.4.1 Java中抽象数据类型的语法描述155

6.4.2 Java中抽象数据类型的语义描述156

6.4.3 Java中抽象数据类型的实现161

6.5 断言检查和异常164

6.6 类和类成员的可见性173

6.7 契约式设计简介175

6.8 小结177

6.9 Java的新特性178

第7章 列表基础179

7.1 一个简单的列表应用程序179

7.2 列表抽象数据类型180

7.3 实现184

7.3.1 数组的实现184

7.3.2 链表实现189

7.3.3 处理异常196

7.4 链接操作实例200

7.4.1 列表中的最大值200

7.4.2 列表中某个特定值的位置201

7.4.3 在一个值的前面插入另外一个值202

7.4.4 toString()、equals()和clone()方法203

7.5 有序简单列表207

7.6 列表变量215

7.6.1 尾指针215

7.6.2 双向链表216

7.6.3 带头结点的链表以及循环链表218

7.7 小结219

7.8 Java的新特性219

第8章 高级列表概念和Uos数据结构库220

8.1 列表工具220

8.1.1 指针220

8.1.2 迭代器221

8.1.3 遍历器231

8.2 字典和列表数据结构库234

8.3.1 大学图书馆应用程序246

8.3  应用246

8.3.2 内存管理258

8.4 多态列表和异质列表264

8.5 小结272

8.6 Java的新特性273

第9章 堆栈275

9.1 简介276

9.2 堆栈ADT276

9.3 实现278

9.4 应用283

9.4.1 括号匹配283

9.4.2 Java动态模型285

9.5 小结293

第10章 递归294

10.1 递归的数学定义294

10.2 递归方法295

10.3 开发和校验递归程序298

10.4 简单递归程序的时间分析301

10.5 递归列表方法303

10.6 小结312

10.7 Java的新特性312

11.1.1 队列ADT315

11.1 队列315

第11章 队列和优先队列315

11.1.2 实现317

11.1.3 应用321

11.2.1 优先队列ADT322

11.2 优先队列322

11.2.2 实现324

11.3 应用:离散模拟325

11.4 小结345

11.5 Java的新特性346

12.2 面向对象开发生命周期347

12.1 简介347

第12章 面向对象开发:一个实例347

12.3 软件开发的责任人348

12.4 一种面向对象的开发方法349

12.5 一个简化的银行的实例353

12.5.1 确定系统需求353

12.5.2 确定系统边界354

12.5.3 标识对象和类359

12.5.4 标识类之间的交互和类的特征362

12.5.5 把类分组成子系统379

12.5.6 确定高层系统体系结构381

12.5.7 发现更多类的细节并完成类的详细设计384

12.5.8 为第一个工作原型写代码390

12.5.10 给第一个工作原型优化代码并完成测试409

12.5.9 从质量角度考虑重新检查系统409

12.5.11 系统的输出样本410

12.6 设计警告413

12.7 无缝软件开发415

12.8 对象模型的优点416

12.9 小结416

12.10 Java的新特性417

13.1 介绍和应用421

第13章 树421

13.2 二叉树的抽象数据类型425

13.3.1 实现428

13.3 二叉树428

13.3.2 遍历435

13.3.3 二叉排序树444

13.3.4 树的工具455

13.3.5 Uos库中的二叉树数据结构458

13.4 一般树461

13.5.1 更好的字典465

13.5 应用465

13.5.2 语言、语法和分析467

13.5.3 表达式求值481

13.6 小结482

14.2 静态系统结构建模483

第14章 基本问题建模及系统设计483

14.1 简介483

14.2.1 生成上下文模型484

14.2.2 如何发现类485

14.2.3 使用关系描述类交互493

14.2.4 子系统(包)503

14.2.5 在系统设计中使用分层结构508

14.3 系统行为建模510

14.3.1 用户、参与者和用例510

14.3.2 事件511

14.3.3 时序图512

14.3.4 协作图514

14.4.1 确定系统需求517

14.4 学生注册系统的分析和结构设计517

14.4.2 确定系统边界520

14.4.3 确定对象和类525

14.4.4 确定类继承和特性527

14.4.6 确定高层系统结构533

14.4.5 将类组成子系统533

14.5 小结537

15.1 简介544

第15章 软件设计的原则544

15.2.1 回顾545

15.2 契约式设计545

15.2.2 客户-供应商契约546

15.2.3 分包契约和继承547

15.2.4 预处理设计551

15.2.5 其他类型的断言支持553

15.2.6 使用断言的目的554

15.3 异常处理555

15.3.1 异常处理的概念555

15.3.2 基本的异常处理557

15.3.3 预定义的异常类564

15.3.4 定义并引发你自已的异常566

15.3.5 异常处理的策略568

15.3.6 继承对异常处理的影响571

15.3.7 总结以及异常的指导原则571

15.4 类设计572

15.4.1 类生命周期573

15.4.2 类的状态空间和行为574

15.4.3 函数中的副作用575

15.4.4 方法中有多少参数576

15.4.5 保持类的简单性577

15.4.6 处理异常情况:类的健壮性578

15.5 建立继承分类579

15.5.1 一些继承分类的概览579

15.4.7 类级别的设计原则579

15.5.2 继承与聚合580

15.5.3 继承分类的一些特性583

15.5.4 建立优秀继承分类的原则585

15.6 面向对象软件的耦合和内聚585

15.6.1 耦合586

15.6.2 内聚592

15.7 软件设计中使用模式596

15.7.1 简介596

15.7.2 回顾前面介绍的模式599

15.7.3 体系结构模式602

15.7.4 设计模式604

15.8 子系统设计609

15.8.1 耦合和内聚610

15.8.2 子系统的边界类610

15.9 一个学生注册系统的详细设计611

15.10 小结615

第16章 软件测试617

16.1 软件测试基础617

16.1.1 基本术语617

16.1.2 测试的基本概念618

16.1.3 确定测试用例619

16.1.4 测试的层次620

16.1.5 测试的心理621

16.1.6 测试的原则621

16.2 人工测试622

16.2.1 代码阅读622

16.2.2 结构化走查方式622

16.3 黑盒测试623

16.3.1 边界值测试623

16.3.2 等价类测试625

16.4 白盒(基于程序的)测试629

16.5 面向对象的测试633

16.5.1 测试面向对象软件中存在的问题634

16.5.2 方法测试635

16.5.3 测试递归方法637

16.5.4 基于状态的类测试638

16.5.5 继承对测试的影响642

16.5.6 面向对象的集成测试643

16.5.7 面向对象的系统测试644

16.6 找出并修改动态错误646

16.6.1 计划调试646

16.6.2 强力调试646

16.6.3 回溯调试647

16.6.4 归纳调试647

16.6.5 演绎调试648

16.6.6 调试示例649

16.7 小结651

第17章 包、集合和词典652

17.1 简介652

17.2 位向量的实现656

17.3 哈希表658

17.3.1 简介659

17.3.2 设计哈希函数659

17.3.3 冲突解决技术662

17.4 专用查找树673

17.4.1 简介和动机673

17.4.2 平衡二叉树675

17.4.3 2-3树687

17.4.4 高效率的数据结构704

17.4.5 trie树709

17.5 更好的优先队列713

17.6 小结713

18.1 简介714

第18章 排序714

18.2 复习基本排序算法715

18.3 递归归并排序715

18.4 快速排序718

18.5.1 递归关系推导721

18.5 使用递归关系表示时间要求721

18.5.2 利用重复替换解决递归关系727

18.5.3 解决分治递归关系730

18.6 堆排序735

18.7 基数排序742

18.8 地址-计算排序746

18.9 小结749

第19章 图750

19.1 图建模简介和示例750

19.2 图论的基本定义758

19.3 图的ADT762

19.4 路径、可到达性和连通性767

19.5 图的表示方法771

19.5.1 邻接矩阵表示法778

19.5.2 邻接表表示法782

19.5.3 可查找的图785

19.6 根据图的矩阵计算路径787

19.6.1 使用矩阵乘法计算可到达性788

19.6.2 有效的到达性算法790

19.6.3 所有节点对最短路径算法792

19.6.4 单源点最短路径算法795

19.7 无向图遍历800

19.7.1 广度优先搜索801

19.7.2 深度优先搜索805

19.8 应用811

19.8.1 连通性和分量811

19.8.2 展开树813

19.8.3 拓扑排序817

19.8.4 调度网络820

19.8.5 测试中的图824

19.9 小结830

20.1 简介831

第20章 文件831

20.2.1 磁带832

20.2 外存储设备832

20.2.2 磁盘833

20.3 定义和概念836

20.4 Java中的永久存储支持837

20.4.1 简介837

20.4.2 基本的字节输入/输出838

20.4.3 输入/输出流小结840

20.4.4 对象序列化843

20.4.5 随机访问文件846

20.4.6 Java缓冲流概述852

20.4.7 ObjectFileUos类853

20.5.1 顺序文件的结构858

20.5 顺序文件858

20.5.2 处理顺序文件861

20.6 直接文件868

20.7 索引顺序文件874

20.7.1 索引顺序文件表示法874

20.7.2 索引顺序文件的实现875

20.8 B-树文件876

20.9 多关键字访问880

20.10 小结883

附录A Java附录884

附录B Java数据结构库1000

附录C 数学基础知识1018

热门推荐