数据结构与抽象:Java语言描述(第4版)

数据结构与抽象:Java语言描述(第4版) PDF 清晰版

  • 大小:131.8 MB
  • 类型:Java语言
  • 格式:PDF
  • 热度:995
  • 作者:弗兰克M.卡拉诺
  • 更新:2023-01-17 20:41:02
vip 立即下载( 131.8 MB )
关注公众号免费下载
版权投诉 / 资源反馈(本资源由用户 袁秋荣 投稿)

给网友朋友们带来一篇Java语言相关的资料,由机械工业出版社出版,作者是弗兰克M.卡拉诺,介绍了关于数据结构、Java方面,格式为PDF,资源大小131.8 MB,目前在Java语言类资源综合评分为:8.4分。

Java语言资源推荐

书籍介绍

好书,这本书是我见过的最适合入门的数据结构了,第四版比第三版厚,因为里面多加了很多javase的知识,第三版是电子工业出版社出版的,京东自营也有卖的,不过第三版和第四版都有一个最蛋疼的地方,就是网上没有源码下载

很经典,很不错。
确切的说,可以用“精彩”来形容这本书。
讲解那些许多复杂的算法,用生活中常遇到的事例进行讲解,深入浅出,很容易理解。
很值得收藏

作者介绍

Frank M.Carrano是美国罗得岛大学(University of Rhode Island)计算机科学系荣誉退休教授,于1969年获得美国锡拉丘兹大学计算机科学专业博士学位。他的兴趣包括数据结构、计算机科学教育、社会问题的计算处理和数值计算。Carrano教授对计算机科学高年级本科课程的设计和交付特别感兴趣,曾撰写了多本的计算机科学高年级本科生教科书。
Timothy Henry是美国罗得岛大学计算机科系副教授,1986年获得美国欧道明大学(Old Dominion University)计算机科学专业硕士学位,2001年获得美国罗得岛大学应用数学专业博士学位。从2000年至今一直保有美国PMI的项目管理专家(Project Management Professional,PMP)认证资格。他教授的课程有:数据结构与抽象、编程语言基础、操作系统与网络、计算机系统基础、计算机科学项目、文件系统取证等。研究的领域有:计算机和数学取证、交互式3D图形关系、传感器网络。

内容简介

本书是一本数据结构的教材,Java语言与数据结构两条知识主线贯穿始终,这两条主线既相互独立又相互支撑。本书介绍了计算机编程中使用的数据结构和算法,包括29章,每章涉及一个ADT或其不同实现的规格说明和用法;书中贯穿9个Java插曲,涉及Java的高级特性。本书主要讲述了组织数据、设计类、包、栈、递归、排序、队列、双端队列、优先队列、线性表、有序表、查找、字典、散列、树、二叉查找树、堆、平衡查找树、图等内容,并对算法的效率进行了分析。本书非常适合作为大学本科生数据结构课程的教材,也可作为计算机研究与开发人员的参考书。

新版修改内容

第1章除包之外,还介绍了ADT集合(set)。
第2章介绍了安全可靠的程序设计方法。本章建议修改的代码已集成到后续各章的所有ADT的实现中。
第5和6章在ADT栈的规格说明及实现中用到了异常。
第8和9章用伪代码代替一些排序方法的Java代码。
第10和11章在ADT队列、双端队列及优先队列的规格说明和实现中用到了异常。
第11章不再包含基于向量实现ADT队列的内容,这些内容留作程序设计项目。
第12、13和14章在ADT线性表的规格说明及实现中用到了异常。
第13章修改了ADT线性表基于数组的实现,忽略了数组元素从下标0开始。不再包含基于向量实现ADT线性表的内容,但留作程序设计项目。
第15章仅涉及ADT线性表的迭代器。Java中迭代器的概念放在前面的Java插曲5中,而不是放在这一章中。
第20章不再包含基于向量实现ADT字典的内容,这些内容留作程序设计项目。
第23章定义了平衡二叉树,前一版放在第25章中。
第24章不再定义二叉链表结点的接口,类BinaryNode也不再实现这个接口。
如何学习本书本书讨论的内容涉及数据的不同组织方法,以便所给的应用程序能以高效的方式访问并处理数据。这些内容是你未来进一步学习计算机科学知识所不可或缺的,因为它们是创建复杂、可靠软件所必需的基础知识。不论你是对设计视频游戏感兴趣,还是对设计机器人控制手术的软件感兴趣,学习数据结构都是走向成功的必经之路。即使你现在没有学完本书的全部内容,在后面的学习中也还可能会遇到相关话题。我们希望你享受阅读本书的过程,希望本书能成为你未来课程学习的有用参考资料。

学习笔记

本章小结

  • 抽象数据类型或ADT是数据集和数据上操作的规格说明。这个规格说明不- 指明如何保存数据或如何实现操作,它与任何程序设计语言无关。
  • 当使用数据抽象来设计一个ADT时,关注想对数据做什么,而不用担心如- 何完成这些任务。即,忽略如何表示数据及如何操纵数据的细节。
  • 程序设计语言中的ADT的表示封装了数据和操作。因此,具体的数据表示- 及方法实现都对客户隐藏。
  • 集合是保存一组其他对象的对象。
  • 包是无特殊次序的项的有限集合。
  • 客户仅能使用ADT包中定义的操作来控制或访问包的项。
  • 当向包中添加对象时,不能表明项在包中的位置。
  • 可以从包中删除一个对象,或者按给定值,或者未指定。还可以从包中删除所有的对象。
  • 包可以报告它是否含有给定的对象,还可以报告给定对象在包中出现的次数。
  • 包可以告诉你它当前含有的对象数,能提供保存这些对象的数组。
  • 集合(set)是一个不含有重复项的包。
  • 对要讨论的类,要在实现它们之前使用类似CRC卡和UML这样的工具仔细说明方法。
  • 设计了ADT草稿后,通过写使用ADT的伪代码,确认你理解了操作及它们的设计。
  • 组织ADT规格说明的一种方式是写一个Java接口。
  • 在定义类之前写一个测试它的程序,看看你是否完全理解并满意类中方法的规格说明。

目录

  • Data Structures and Abstractions with Java, Fourth Edition
  • 出版者的话
  • 译者序
  • 前言
  • 引言 组织数据 1
  • 序言 设计类 3
  • P.1 封装 3
  • P.2 说明方法 5
  • P.2.1 注释 5
  • P.2.2 前置条件和后置条件 5
  • P.2.3 断言 6
  • P.3 Java接口 7
  • P.3.1 写一个接口 8
  • P.3.2 实现一个接口 9
  • P.3.3 接口作为数据类型 11
  • P.3.4 派生一个接口 12
  • P.3.5 接口内命名常量 13
  • P.4 选择类 14
  • P.4.1 标识类 15
  • P.4.2 CRC卡 15
  • P.4.3 统一建模语言 16
  • P.5 重用类 17
  • 第1章 包 22
  • 1.1 什么是包 22
  • 1.2 说明一个包 23
  • 1.3 使用ADT包 30
  • 1.4 像使用自动贩卖机一样使用ADT 33
  • 1.5 ADT集合 34
  • 1.6 Java类库:接口Set 35
  • Java插曲1 泛型 39
  • 第2章 使用数组实现包 43
  • 2.1 使用固定大小的数组实现ADT包 43
  • 2.1.1 类比 43
  • 2.1.2 一组核心方法 44
  • 2.1.3 实现核心方法 45
  • 2.1.4 让实现安全 51
  • 2.1.5 测试核心方法 54
  • 2.1.6 实现更多的方法 56
  • 2.1.7 删除项的方法 58
  • 2.2 使用可变大小的数组实现ADT包 65
  • 2.2.1 可变大小数组 65
  • 2.2.2 包的新实现 68
  • 2.3 使用数组实现ADT包的优缺点 70
  • Java插曲2 异常 75
  • 第3章 使用链式数据实现包 82
  • 3.1 链式数据 82
  • 3.2 ADT包的链式实现 84
  • 3.2.1 私有类Node 84
  • 3.2.2 类LinkedBag的框架 85
  • 3.2.3 定义一些核心方法 86
  • 3.2.4 测试核心方法 89
  • 3.2.5 方法getFrequencyOf 90
  • 3.2.6 方法contains 91
  • 3.3 从链中删除一项 92
  • 3.4 有设置和获取方法的类Node 96
  • 3.5 使用链实现ADT包的优缺点 98
  • 第4章 算法的效率 102
  • 4.1 动机 102
  • 4.2 测量算法的效率 103
  • 4.2.1 计数基本操作 105
  • 4.2.2 最优、最差和平均情形 106
  • 4.3 大O表示 107
  • 4.4 描述效率 110
  • 4.5 实现ADT包的效率 113
  • 4.5.1 基于数组的实现 113
  • 4.5.2 链式实现 114
  • 4.5.3 两种实现的比较 115
  • 第5章 栈 121
  • 5.1 ADT栈的规格说明 121
  • 5.2 使用栈来处理代数表达式 125
  • 5.2.1 问题求解:检查中缀代数表达式中平衡的分隔符 125
  • 5.2.2 问题求解:将中缀代数表达式转换为后缀表达式 129
  • 5.2.3 问题求解:计算后缀表达式的值 133
  • 5.2.4 问题求解:计算中缀表达式的值 134
  • 5.3 程序栈 136
  • 5.4 Java类库:类Stack 137
  • 第6章 栈的实现 142
  • 6.1 链式实现 142
  • 6.2 基于数组的实现 144
  • 6.3 基于向量的实现 148
  • 6.3.1 Java类库:类Vector 148
  • 6.3.2 使用向量实现ADT栈 149
  • 第7章 递归 154
  • 7.1 什么是递归 154
  • 7.2 跟踪递归方法 158
  • 7.3 返回一个值的递归方法 160
  • 7.4 递归处理数组 162
  • 7.5 递归处理链 165
  • 7.6 递归方法的时间效率 166
  • 7.6.1 countDown的时间效率 166
  • 7.6.2 计算xn的时间效率 167
  • 7.7 困难问题的简单求解方案 168
  • 7.8 简单问题的低劣求解方案 172
  • 7.9 尾递归 174
  • 7.10 间接递归 176
  • 7.11 使用栈来替代递归 177
  • Java插曲3 再谈泛型 185
  • 第8章 排序简介 194
  • 8.1 对数组进行排序的Java方法的组织 194
  • 8.2 选择排序 195
  • 8.2.1 迭代选择排序 196
  • 8.2.2 递归选择排序 198
  • 8.2.3 选择排序的效率 198
  • 8.3 插入排序 199
  • 8.3.1 迭代插入排序 199
  • 8.3.2 递归插入排序 201
  • 8.3.3 插入排序的效率 202
  • 8.3.4 链式结点链的插入排序 203
  • 8.4 希尔排序 205
  • 8.4.1 算法 206
  • 8.4.2 希尔排序的效率 207
  • 8.5 算法比较 208
  • 第9章 更快的排序方法 213
  • 9.1 归并排序 213
  • 9.1.1 归并数组 213
  • 9.1.2 递归归并排序 214
  • 9.1.3 归并排序的效率 216
  • 9.1.4 迭代归并排序 217
  • 9.1.5 Java类库中的归并排序 218
  • 9.2 快速排序 218
  • 9.2.1 快速排序的效率 219
  • 9.2.2 创建划分 219
  • 9.2.3 实现快速排序 221
  • 9.2.4 Java类库中的快速排序 223
  • 9.3 基数排序 223
  • 9.3.1 基数排序的伪代码 225
  • 9.3.2 基数排序的效率 225
  • 9.4 算法比较 226
  • Java插曲4 再谈异常 231
  • 第10章 队列、双端队列和优先队列 238
  • 10.1 ADT队列 238
  • 10.1.1 问题求解:模拟排队 241
  • 10.1.2 问题求解:计算出售股票的资本收益 246
  • 10.1.3 Java类库:接口Queue 248
  • 10.2 ADT双端队列 249
  • 10.2.1 问题求解:计算出售股票的资本收益 251
  • 10.2.2 Java类库:接口Deque 252
  • 10.2.3 Java类库:类ArrayDeque 253
  • 10.3 ADT优先队列 254
  • 10.3.1 问题求解:跟踪任务分配 255
  • 10.3.2 Java类库:类PriorityQueue 257
  • 第11章 队列、双端队列和优先队列的实现 262
  • 11.1 队列的链式实现 262
  • 11.2 基于数组实现队列 265
  • 11.2.1 循环数组 266
  • 11.2.2 带一个不用位置的循环数组 267
  • 11.3 队列的循环链式实现 272
  • 11.4 Java类库:类AbstractQueue 277
  • 11.5 双端队列的双向链式实现 2

 

以上就是本次关于书籍资源的介绍和部分内容,我们还整理了以往更新的其它相关电子书资源内容,可以在下方直接下载,关于相关的资源我们在下方做了关联展示,需要的朋友们也可以参考下。

相关资源

  • C语言程序设计实验指导

    C语言程序设计实验指导 课后答案

    本书是为《C语言程序设计》(何钦铭、颜晖主编,高等教育出版社出版)编写的配套实验指导用书,已经出版的《C语言程序设计》围绕程序设计组织内容,特色鲜明。 本套教材充分展示了浙江大学程序设计教学改革的成果,C程序设计基础及实验是2004年国家精品课程,以强化实践教学和激发自主学习、提高大学生程序设计能力为目的,获得了浙江省2004年教学成果一等奖。 目录 实验1 熟悉C语言编程环境 实验2 用C语言编写简单程序 2.1 基本数据处理 2.2

    大小:203 KBC语言课后答案

  • 《Excel 2013从新手到高手(超值版)》电子资源

    《Excel 2013从新手到高手(超值版)》电子资源

    编辑推荐 本书特色 零基础、入门级的讲解 无论读者是否从事相关行业,是否使用过Excel 2013,都能从本书中找到起点。本书入门级的讲解,可以帮助读者快速地进入高手的行列。 名师教学,举一反三 本书特聘经验丰富的一线教学名师编写,帮助读者快速理解所学知识并实现触类旁通。实例为主,图文并茂在介绍的过程中,每一个知识点均配有实例辅助讲解,每一个操作步骤均配有对应的插图加深认识。这种图文并茂的方法,能够使读者在学习过程中直

    大小:2.4 GBExcel配套资源

  • c++程序设计基础(第2版)

    c++程序设计基础(第2版) 课后答案

    本书是教育部新世纪高职高专教育人才培养模式和教学内容体系改革与建设项目成果,是由教育部高职高专教育专业教学改革有关试点院校编写的,是在第一版的基础上修订而成的。 本书重点对狭义管理会计所涉及的基础理论与实务进行研究。主要内容有:管理会计概述、成本习性、变动成本法、本量利分析、预测分析、短期经营决策、长期投资决策、全面预算、成本控制分析、责任会计、作业成本法与质量成本和准时化生产系统的成本核算等。本书针对当

    大小:2.03 MBc++课后答案

  • 面向对象程序设计(C++语言)

    面向对象程序设计(C++语言) 课后答案

    《面向对象程序设计(C++语言)》是2014年清华大学出版社出版的图书。 本书是一本易学易用的面向对象程序设计(C++语言)大学教程,内容分成三大部分。 第一部分是C++语言基础,重点介绍了C++语言的语法、面向对象的基本特征、C++程序的开发过程、基本数据类型、函数、引用、动态内存管理及异常处理等。 第二部分是面向对象的程序设计,详细讲述面向对象程序设计的有关基本概念、类与对象的定义和使用、继承与派生、多态性、运算符重载、模板、

    大小:118 KB面向对象课后答案

  • 离散数学(第3版)

    离散数学(第3版) 课后答案

    《离散数学(第3版)/十二五普通高等教育本科国家级规划教材计算机系列教材》根据IEEEcs/AcMComputingCurricula2005系统地阐述离散数学的经典内容,渗透初等数论知识。全书共分8章,分别介绍集合、映射与运算,关系,命题逻辑,谓词逻辑,代数结构,图论,几类特殊的图以及组合计数.本书以集合、映射、运算和关系为主线,使全书内容联系紧密,具有较强的逻辑性.每节都有精选习题,书后有习题答案及提示.所用符号尽可能与其他专业课程一致,专

    大小:17.2 MB离散数学课后答案

  • 《Java数据分析指南》配套代码

    《Java数据分析指南》配套代码

    内容简介 当今,数据科学已经成为一个热门的技术领域,例如数据处理、信息检索、机器学习、自然语言处理、数据可视化等都得到了广泛的应用和发展。而Java作为一门经典的编程语言,在数据科学领域也有着突出的表现。 本书旨在通过Java编程来引导读者更好地进行数据分析。本书包含11章内容,详细地介绍了数据科学导论、数据预处理、数据可视化、统计、关系数据库、回归分析、分类分析、聚类分析、推荐系统、NoSQL数据库以及Java大数据分析等重

    大小:334.53 KBJava数据分析配套资源

  • 计算机算法设计与分析(第3版)

    计算机算法设计与分析(第3版) 课后答案

    《计算机算法设计与分析(第3版)》为普通高等教育十一五国家级规划教材,是计算机专业核心课程算法设计与分析教材。全书以算法设计策略为知识单元,系统介绍计算机算法的设计方法与分析技巧。主要内容包括:算法概述、递归与分治策略、动态规划、贪心算法、回溯法、分支限界法、随机化算法、线性规划与网络流、NP完全性理论与近似算法等。书中既涉及经典与实用算法及实例分析,又包括算法热点领域追踪。 为突出教材的可读性和可用性,章

    大小:9.01 MB计算机算法课后答案

  • 微机原理与接口技术

    微机原理与接口技术 课后答案

    本书由浅入深全面地阐述了16位微机的工作原理,体系结构和汇编语言程序设计方法,从ISA系统总线入手介绍PC/XT和PC/AT机构并行输入输出,中断,DMA,存储器,A/D,D/A及串行通信等接口技术,对386,486和多媒体微机以及EISA,MCA,VL和PCI等总线也作了比较详细的分析.本书选材适当,适合工科院校机,电类专业使用,也可供自学和工程技术人员参考. 目录 第一章 微机基础 第一节 微机概述 第二节 计算机中数的表示和编码 第三节 微机的一般概念 第四节 Intel 8088/80286微处理

    大小:6.09 MB微机原理课后答案

下载地址

相关声明:

学习笔记