数据结构JAVA语言描述:国外经典计算机科学教材(第二版)

数据结构JAVA语言描述:国外经典计算机科学教材(第二版)
作 者: Michael Main 孔芳 周丽琴 孔芳
出版社: 中国电力出版社
丛编项: 国外经典计算机科学教材系列
版权说明: 本书为公共版权或经版权方授权,请支持正版图书
标 签: 数据结构
ISBN 出版时间 包装 开本 页数 字数
未知 暂无 暂无 未知 0 暂无

作者简介

暂缺《数据结构JAVA语言描述:国外经典计算机科学教材(第二版)》作者简介

内容简介

在本书中,作者MichaelMain采用一种易于理解的方法,使用Java来讲解数据结构。本书给出了关于面向对象编程和Java的一个知识回顾,使学生得以牢固掌握关键的概念知识,不同层次的学生能够根据自己的实际情况调整学习的内容。本书在结构安排上比较灵活,教师可以根据教学情况进行调整,例如可以强调面向对象的编程,提前讲解递归和排序或加快课程。对于那些想要均衡介绍使用Java进行面向对象编程和数据结构的教师来说,本书是非常不错的选择。本书第二版中包含了新的附录和在线资源,具有更加丰富的Java参考资料,并且增加了对面向对象编程和继承性的介绍。本书特色:·各个主题的顺序非常灵活,教师们能够根据课程需要自行调整本书内容。·告诉学生如何基于Java类库规范,设计、实现和使用类。·讨论编程技巧、陷阱警告和错误警告,让学生注意到Java的细微之处。·不断使用五步方法处理数据类型,让学生完全理解该主题;彻底理解数据类型,·编写规格说明,使用数据类型,设计和实现数据类型,并且分析实现。·告诉学生如何编写JavaApplet来测试新实现的数据结构。

图书目录

第1章 软件开发周期 1

1.1 规格说明、设计和执行 3

1.2 运行时间分析 15

1.3 测试和调试 22

本章小结 29

自测练习参考答案 29

第2章 Java类和信息隐藏 32

2.1 类及其成员 33

2.2 使用类 43

2.3 包 49

2.4 参数、equals方法和clone 53

本章小结 72

自我测试答案 73

编程项目 75

第3章 集合类 83

3.1 Java数组简介 84

3.2 整数包ADT 89

3.3 编程项目:序列ADT 114

3.4 编程项目 124

本章小结 126

自测练习答案 127

编程项目 131

第4章 链表 136

4.1 链表基础 137

4.2 操作节点的方法 139

4.3 操作整个链表 149

4.4 使用链表的包ADT 168

4.5 程序设计项目:带链表的序列ADT 181

4.6 超越简单链表 186

本章小结 189

自测练习参考答案 189

程序设计项目 195

第5章 通用程序设计 198

5.1 Java的Object类型 199

5.2 对象包 203

5.3 对象结点 217

5.4 接口以及API(选读) 220

5.5 ITERATOR接口(选读) 227

5.6 带有Iterator的通用包类(选读) 230

5.7 Java的Collection和Map接口的介绍(选读) 233

本章小结 241

自测练习的答案 241

程序设计项目 245

第6章 堆栈 247

6.1 堆栈简介 247

6.2 堆栈的应用 251

6.3 堆栈ADT的实现: 263

6.4 更复杂的堆栈应用 271

本章小结 278

自测练习参考答案 279

程序设计项目 280

第7章 队列 283

7.1 队列简介 284

7.2 队列应用 287

7.3 队列ADT的实现 301

7.4 优先队列 214

本章小结 218

自测练习答案 218

程序设计项目 320

第8章 递归思想 323

8.1 递归方法 324

8.2 递归的研究:FRACTAL和迷宫 331

8.3 推导递归 347

本章小结 353

自测练习参考答案 353

程序设计项目 355

第9章 树 360

9.1 树的简介 361

9.2 树的遍历 365

9.3 二叉树节点类 368

9.4 树的遍历 383

9.5 二叉搜索树 395

本章概述 408

自测练习答案 408

编程题目 411

第10章 树项目 411

10.1 堆 412

10.2 B-树 416

10.3 Java对树的支持 435

10.4 树,日志,时间复杂度分析 440

本章小结 444

自测题答案 444

程序设计方案 447

第11章法 查找 448

11.1 顺序查找和二分查找 449

11.2 开型寻址散列 457

11.3 使用Java的HashTable类 471

11.4 链式散列 471

11.5 散列的时间分析 474

本章小节 476

自测练习参考答案 477

程序设计项目 479

第12章 排序 481

12.1 二次排序算法 482

12.2 递归排序算法 492

12.3 使用堆的一个O(nlogn)算法 506

本章小结 514

自测练习参考答案 515

程序设计项目 516

第13章 使用扩展类实现软件重用 518

13.1 扩展类 519

13.2 模拟生态系统 526

13.3 抽象类和game类 544

本章小结 555

进阶阅读 555

自测练习参考答案 556

程序设计项目 558

第14章 图 560

14.1 图的定义 561

14.2 图的实现 566

14.3 图遍历 577

14.4 路径算法 585

本章小结 594

自测练习参考答案 594

程序设计项目 596

附录A Java的原始类型和算术溢出 597

char类型的专有特性 598

附录B Java的输入和输出 600

EasyReader类 600

FormatWriter类 600

附录C 抛出和捕获Java异常 617

如何抛出异常 617

RuntimeException和Error类 619

捕获异常 619

throws语句 620

进阶信息 621

附录D ArrayList、Vector、Hashtable和HashMap类 622

java.util.Vector和java.util.ArrayList类 622

java.util.Hashtable和java.util.HashMap类 624

附录E 用于链表中的节点的类 626

附录F 一个用于bag对象的类 634

附录G 深入Big-O表示法 640

Big-O的常规定义 640

big-O表达式表示什么 641

附录H Javadoc 642

怎样使用Javadoc把你的工件提供给其他程序员 643

怎样编写Javadoc文档注释 643

描述整个类的Javadoc文档 644

用于单独的公有方法的Javadoc 644

控制html链接和字体 645

运行Javadoc 646

附录I 用于交互式测试的Applets 650

简单交互式applet的六个部分 652

怎样编译和运行applet 659

超出init方法之外 660