Java数据结构和算法第二版在线阅读-Java数据结构和算法第二版PDF电子版下载完整版

Java数据结构和算法第二版在线阅读-Java数据结构和算法第二版PDF电子版下载完整版

编辑点评:

《Java数据结构和算法》(第2版)介绍了计算机编程中使用的数据结构和算法,对于在计算机应用中如何操作和管理数据以取得最优性能提供了深入浅出的讲解

20201110182004.png

本书相关内容

本书是一本有关计算机编程中所应用的数据结构和算法的书。数据结构是指数据在计算机存储空间中(或磁盘中)的安排方式。算法是指软件程序用来操作这些结构中的数据的过程。

几乎所有的计算机程序都使用数据结构和算法,即使最简单的程序也不例外。比如设想一个打印地址标签的程序,这个程序使用一个数组来存储地址,并且使用一个简单的for循环来遍历数组,打印每一个地址。

在上面例子中的数组就是一个数据结构,用for循环来顺序访问该数组,这就构造了一个简单的算法。对于一个仅有少量数据的简单程序来说,上述的这种方法已经足够了。但是如果用程序来处理中等规模以上的数据或解决那些不太平常的问题时,就需要用一些更加复杂的技术来应付它们。仅仅知道诸如Java或C++等计算机语言的语法是远远不够的。

本书提供了学完一门编程语言后进一步需要知道的知识。本书所涵盖的内容通常作为大学或学院中计算机系二年级的课程,在学生掌握了编程的基础后才开始本书的学习。

本书的不同之处

有关数据结构和算法的书很多,本书的不同之处有如下三条:我们在写书过程中的主要目标是使本书所涉及到的知识尽可能地容易理解。

书中称作专题applet(Workshop applet)的演示程序可以将知识生动化,它可以一步一步地通过“活动的图像”来展示数据结构和算法是如何工作的。

示例程序是用Java编写的,它比那些传统的用来演示计算机问题的语言,如c.C+或Pascal更好理解

让我们来更加详细地讨论上述特性。

第二版的新颖之处

本书的第二版在第一版的基础上有所扩充,使之能更好地适应教师的计算机科学课堂教学,并使读者在阅读上更加容易。除去新增的章节,还添加了章末问题、实验和编程作业。

新增章节

在本版中加入了许多有趣的新内容。其中许多为编制上机作业提供了基础。这些新主题有:深度优先搜索和游戏模拟

约瑟夫(Josephus)问题

数据压缩中的赫夫曼编码

旅行售货员问题

汉密尔顿(Hamilton)回路

骑士旅行问题

弗洛伊德(Floyd)算法

沃赛尔(Warshall)算法

2-3树背包问题

从n个事物中取k个的组合方案

哈希函数的数字折叠法

基数排序

本书的组织结构

本节是为教师和那些希望快速了解本书内容的人而准备的。下面的内容假定读者对数据结构和算法中的问题和术语已经相当熟悉。

前两章试图使读者尽可能轻松地进入数据结构和算法的世界。

第1章“综述”,给读者一个各主题的总体印象并介绍少量后面要用到的术语。对于那些对面向对象编程不太熟悉的读者,本章总结了一些相关的知识。对于那些知道C++而不熟悉Java的程序员,本章对这两种语言的主要差别进行了描述。

第2章“数组”,集中讨论数组。这里面包含有两层意思:如何使用类来对数据存储结构进行封装和类的接口。其中包括数组和有序数组的查找、插入、删除、线性查找和二分查找。专题applet通过对无序和有序的数组进行操作来解释上述算法.

第3章“简单排序”介绍三种简单的(但是慢速的)排序方法:冒泡排序、选择排序和插入排序。每一种排序都有一个相应的专题applet.

第4章“栈和队列”涉及到三种可以被认为是抽象数据类型(ADT)的数据结构:栈、队和优先级队列。这些结构在本书中大量重复出现,是许多算法的基础。每一种结构都有一个相应的专题appleto ADT的概念也会在本章中讨论。

第5章“链表”介绍了链表中的双向链表和双端链表。本章还解释了Java中被称作“无痛指针”

的使用,并用一个专题applet演示了链表的插入、查找和删除是如何进行的。

第6章“递归”探索了递归的知识,这是书中仅有的非数据结构的几章之一。本章给出了大量的递归例子,包括汉诺塔问题和归并排序,它们都有相应的专题applet.

第7章“高级排序”研究了几种高级的排序方法:希尔排序和快速排序。专题applet演示了希尔排序,快速排序的基础-划分(partitioning)和两种形式的快速排序,第8章“二叉树”开始了对树的探索。本章中介绍了最简单最通用的树型结构:不平衡的二叉搜索树。一个专题applet演示了此类树的插入、删除和遍历是如何进行的。

第9章“红-黑树”解释了红-黑树,它是最有效的平衡树之一。专题applet演示了平衡这种树所需的旋转和颜色转换。

第10章"2-3-4树和外部存储”将2-3-4树作为多叉树的一个例子进行了讲解。专题applet会演示它们是如何工作的。我们还将讨论2-3树和2-3-4树与B树的关系,这些知识对于存储外部(磁盘)的文件十分有用。

第11章“哈希表”转到哈希表这个新的讨论领域。专题applet演示了几种方法:线性、二次探测和再哈希及链地址法。本章中还讨论了哈希表方法在组织外部文件方面的应用。

第12章“堆”讨论了一种特殊的树-堆,用它作为优先队列的一种有效的实现手段。

第13章“图”和第14章“带权图”处理图的相关问题,前者处理未加权图和简单的查找算法,后者处理带权图和更加复杂的算法,如最小生成树和最短路径。

第15章“应用场合”总结了前几章描述过的各种数据结构,还着重讨论了如何在给定情况下应用合适的数据结构的问题。

附录A"运行专题applet和示例程序”提供了如何使用这两种软件的细节。此部分同时讲解了如何使用来自Sun公司的软件开发工具集,可以用它来修改示例程序或开发自己的程序,还可以通过它来运行专题applet和示例程序。

附录B“进一步学习”介绍了一些关于数据结构和相关内容的进阶书籍。

附录C“问题答案”包括了书中章末问题的解答。

Java数据结构和算法第二版PDF电子版下载截图

Java数据结构和算法第二版在线阅读-Java数据结构和算法第二版PDF电子版下载完整版插图(1)Java数据结构和算法第二版在线阅读-Java数据结构和算法第二版PDF电子版下载完整版插图(2)Java数据结构和算法第二版在线阅读-Java数据结构和算法第二版PDF电子版下载完整版插图(3)Java数据结构和算法第二版在线阅读-Java数据结构和算法第二版PDF电子版下载完整版插图(4)

评分及评论

无用户评分

来评个分数吧

  • 5 分
    0
  • 4 分
    0
  • 3 分
    0
  • 2 分
    0
  • 1 分
    0

Comments