数据结构与抽象:Java语言描述pdf下载pdf下载

数据结构与抽象:Java语言描述百度网盘pdf下载

作者:
简介:本篇主要提供数据结构与抽象:Java语言描述pdf下载
出版社:机械工业出版社自营官方旗舰店
出版时间:2019-10
pdf下载价格:0.00¥

免费下载


书籍下载


内容介绍

内容简介

  《数据结构与抽象:Java语言描述(原书第5版)》介绍数据结构及其Java实现,内容分为30章,涵盖的ADT有包、栈、队列等线性结构以及二叉树、查找树等层次结构和图结构,给出了对应于各ADT规范说明的Java类,分别基于数组方式和指针方式实现了类中的主要操作。书中还介绍了排序、查找相关算法,描述了字典、散列等概念和实现方式,介绍了评价算法效率的复杂度概念,以及使用迭代和递归方式实现算法的基本思路。
  《数据结构与抽象:Java语言描述(原书第5版)》可作为相关专业数据结构课程的教材使用,也可供专业技术人员参考。

作者简介

  弗兰克·M.卡拉诺(Frank M.Carrano)是美国罗得岛大学计算机科学系荣誉退休教授,1969年获得美国锡拉丘兹大学计算机科学专业博士学位。他的研究兴趣包括数据结构、计算机科学教育、社会问题的计算处理和数值计算。Carrano教授撰写了多本著名的计算机科学高年级本科生教科书。
  
  蒂莫西·M.亨利(Timothy M.Henry)
  是美国新英格兰理工学院计算机科学系副教授,1986年获得美国欧道明大学计算机科学专业硕士学位,2001年获得美国罗得岛大学应用数学专业博士学位,自2000年以来一直保有美国PMI的项目管理专家(Project Management Professional,PMP)认证资格。他教授的课程有数据结构与抽象、编程语言基础、操作系统与网络、计算机系统基础、计算机科学项目、文件系统取证等,研究领域涉及计算机和数学取证、交互式3D图形关系、传感器网络。

内页插图

目录

出版者的话
译者序
前言
导论 组织数据
序言 设计类
第1章 包
Java插曲1 泛型
第2章 使用数组实现包
Java插曲2 异常
第3章 使用链式数据实现包
第4章 算法的效率
第5章 栈
第6章 栈的实现
Java插曲3 再论异常
第7章 队列、双端队列和优先队列
第8章 队列、双端队列和优先队列的实现
第9章 递归
第10章 线性表
第11章 使用数组实现线性表
第12章 使用链式数据实现线性表
……

前言/序言

  时隔三年多,这本书又一次摆上案头。看着崭新的书,一方面敬佩原作者Frank M.Carrano和Timothy M. Henry严谨的治学态度和勤奋的工作精神,一方面也激励译者不能懈怠,要以更加认真的工作态度完成第5版的翻译工作。
  一如既往,第5版也是个厚重的大部头。相比于第4版,主体内容没有太多的变化,仍然是Java语言与数据结构两条知识主线贯穿始终。本版的修订主要集中在三个方面。
  第一方面,是章节次序做了调整,相关的主题集中介绍。这样,学习时内容连贯,也可以相互对比。比如,栈和队列都是受限的线性表,属于线性结构,通常情况下是依次介绍的。在第4版中,这两部分内容并不是连续的,其间还穿插介绍了递归和排序的内容。很明显,第5版的安排更加合理了。再比如,排序的方法比较多,按照效率来分,通常分为两大类,第5版中将排序方法也调整到了连续的章节中。
  第二方面,是将递归的内容拆分为两章,先介绍基础知识,后介绍使用递归求解问题的方法。递归不是一个直观的概念,要想在程序中正确使用递归求解问题,深入理解概念是必不可少的环节。第5版加强了这些内容的介绍,帮助读者递归地思考问题,同时还介绍了递归程序的效率分析。
  第三方面,是增加了侧重于游戏、电子商务及财务方面的新练习和程序设计项目。学习了数据结构的知识之后,可以通过练习和程序设计项目来检验学习的效果。第4版中,在每章的最后都有数量不等的练习题和程序设计题目,在此基础上,第5版又增加了结合实际应用的题目。以这些题目作为切入点,可以逐步过渡到大的应用项目的开发。
  第5版中,语言更加准确简捷,给出的图更加清晰明确。读者可以选择按序学习各章的内容,也可以先学习ADT的部分,再学习各ADT的实现部分。作者对章节的安排方便了读者的学习过程。作为教师,讲授的次序也可以自主安排。
  为了让读者对全书内容有个大致的了解,下面简略地介绍一下全书的内容。
  全书介绍了包、栈、队列、线性表、字典、树、堆及图等数据结构。每种数据结构都在连续的两三章中介绍。前一章专门介绍与每种结构相关的ADT的规范说明,包括数据属性及相关操作。使用具体实例说明这些操作的含义及操作的结果,帮助读者理解其定义。定义的接口也与规范说明放在同一章中,这一章的内容基本上不涉及实现的细节。接下来的一章或两章中,着重介绍对所讨论ADT的实现过程,并对每种实现进行效率分析。对有些重要且应用广泛的数据结构,还给出了问题求解实例。
  树和图是非常重要的数据结构,树又衍生出二叉树、查找树等结构。它们的概念与实现,既来源于树,又有别于树,所以单独成章、重点介绍。图是本书介绍的最后一种结构,除了像其他ADT -样介绍了基本操作的实现之外,还着重介绍了图的几个应用,包括遍历、拓扑排序及最短路径问题。各类算法的实现,有很多是使用递归完成的。本书使用两章的篇幅介绍了递归的概念,及如何编写递归程序。
  数据的存储方式可分为两大类:一类使用数组,包括向量;另一类使用指针,即链式实现。本书对各个ADT均给出基于数组及基于链的两种实现方式,并针对每种实现的适用性做了介绍和对比。
  除此之外,本书还介绍了排序、查找、散列等概念及相应的实现过程。它们是常用的方法,也是数据结构课程的重要组成部分。针对数据的不同存储方式,适用的排序和查找方法及其实现过程不尽相同,本书也一一做了介绍。
  算法的效率是重要的衡量指标,作者介绍了算法分析的大D表示。书中实现的每个算法都使用这些技术进行了效率分析,特别介绍了递归方法的效率分析。
  本书将Java语言的相关内容组织成插曲及附录,在插曲中介绍了泛型、异常、迭代器、可变对象及不可变对象、克隆等内容,在附录中介绍了Java的基本语法,以及编写Java程序时要注意的方面。同时还给出了词汇表,方便读者查询。附录中的内容属于Java语言的基本知识,插曲中的内容是更深入的部分。这些主题比较独立,熟悉这些内容的读者可以略过它们,也可以在涉及相关内容时作为参考而有选择地阅读。这样可以减轻读者的学习难度,也避免了顾此失彼。作者特别注重知识的衔接,在每章的最前面,列出学习本章时应该先学习哪些先修章节,这为读者画出了一个清晰的学习路线图。
  译者在翻译过程中,尽可能地保持了原书的风格,包括排版格式。除了正文中的内容全部翻译外,也翻译了伪语言描述的算法中的英文语句,以帮助读者理解伪语言。
  本书非常适合作为大学本科数据结构课程的教材使用。书中内容图文并茂,讲解条理清晰。在内容介绍过程中,配合讲解的内容穿插相关的问题并要求读者回答,帮助读者自行检查对知识的掌握程度。每章最后都有数目不等的练习及项目,教师可选择使用。本书提供了大量的代码,并对代码进行了详细的介绍,这些代码对学生理解课程内容非常有益。有些未全部实现的类及方法作为课后练习及项目,要求学生完成,书中提供的这些代码成为必要的参考及基础。
  在此,非常感谢机械工业出版社华章公司给译者提供的翻译机会。在翻译过程中,译者不仅学习了作者的编写思想,更感受到作者的敬业精神。书中反映出的作者的认真态度,使译者在翻译过程中不敢有丝毫的懈怠。译者还要特别感谢朱劫、张梦玲等编辑。翻译过程中,译者始终得到华章公司温莉芳副总经理、朱劫主任的大力支持和全方位的帮助。责任编辑严格把关,与译者多次探讨重要概念、术语的确切含义及合适的用辞。正是各位编辑的认真负责,才让本书顺利地和读者见面。
  本书由辛运帏翻译。翻译过程中,得到了南开大学计算机学院多位老师的支持和帮助,包括徐敬东教授、刘晓光教授、王刚教授、杨巨峰教授等,由于篇幅所限,恕译者不能一一列出全部人的姓名,在此一并表示衷心的感谢。还要特别感谢国防科技大学计算机学院熊岳山教授、东南大学计算机学院姜浩教授、北京理工大学网络服务中心陈朔鹰主任,正是他们为译者提出的众多非常好的建议,帮助译者顺利完成了本书的翻译。
  虽然译者在翻译时非常认真努力,期望以尽量高的水平将本书呈现给读者,但限于译者的水平,很多地方并不能完全体现作者的原意。第5版的翻译中也尽量改正了第4版翻译中的错误,但书中仍难免有错误之处,敬请广大读者指正。您的任何意见和建议都能帮助进一步完善本书。
  感谢尊敬的读者选择了本书。