开发技巧

618福利好书分享:Java软件结构与数据结构 PDF 第4版

2020-06-18  本文已影响0人  程序花生

本书始终以良好软件工程实践为准则,以Java为语言,介绍数据结构与算法的相关知识和具体实现,强调完美软件设计技巧的重要性,并通过大量的实例,支持和强化数据结构与算法的学习。

文档资料领取方式:点赞+关注,加微信号:AAAMAXIAOXIN 即可免费领取!

章节划分

第1章(概述)讨论了软件质量涉及的各个方面,并对软件开发问题进行了一个全面概述。本章的目的在于,在进行数据结构和算法设计的细节之前,建立一套正确的开发思路。

第2章(算法分析)介绍了确定算法效率的基础知识,并阐述了一个重要的标准,使得开发,人员可以以正确的方式将一种算法 与另一种算法进行比较。本章的重点是理解重要的概念,而不是陷入数学或公式的漩涡。

第3章(集合概述一栈)建立了集合的概念,强调了将接口和实现区分开来的必要性。本章还从概念上介绍了栈,然后阐述了基于数组的栈的实现。

第4章(链式结构一栈)讨论了使用引用来创建链式数据结构。本章考察了有关链表管理的基本问题,然后使用基本链式数据结构(在第3章中已介绍),定义栈的另一种实现方法。

第5章(队列)考察了先进先出队列的概念和实现。本章通过一个高效使用队列的示例来讨论基数排序。本章所介绍的实现包括基本链表以及定长和环形数组。

第6章(列表)论述了3种类型的列表:有序表、无序表和索引表。通过讨论这3种类型列表所共有的及各自独有的操作,来对它们进行比较和区分。在各种类型的列表设计中,我们将恰当地使用继承,且通过两种方式(基于数组的和链式的表示)来实现这些列表。

第7章(迭代器)是新的一章,分别介绍了迭代器的概念和实现,这些对集合是非常重要的。

第8章(递归)概要介绍了递归的概念,以及递归解决方案为什么是优美的。本章还探讨了递归的实现细节,并讨论了递归算法分析的基本思想。

第9章(排序与查找)讨论了线性查找和二分查找算法以及若干排序的算法(如选择排序、插入排序、冒泡排序、快速排序以及归并排序)。本章着重讨论与查找和排序相关的编程问题,比如将Comparable接口用作对象比较的基础,以特定数据结构为基础的查找与排序(如堆排序)将在后面的章节讨论。

第10章(树)对树进行了概述,并构建了关键的术语和概念。本章讨论了各种实现方式,并通过一个二叉树来表示和评估某- -算数表达式。

第11章(二叉查找树)利用第9章构建的基本概念,定义了一个经典的二叉查找树。本章先考察了一个二叉查找树的链式实现,然后讨论了树结点的平衡如何对其性能起到关键作用。这就引出了AVL和二叉查找树的红/黑实现的介绍。

第12章(优先队列与堆)探讨了堆的概念、使用和实现,尤其是与优先队列的关系。我们通过一个堆排序来举例说明其用途。本章还介绍了链式实现和基于数组的实现。

第13章(Set与Map集合)介绍了这两种类型的集合及其对JavaCollectionsAPI的重要性。

第14章(多路查找树)是前面章节的自然延伸。本章讨论了2-3树、2-4 树以及广义B树的概念,还讨论了各种实现。

第15章(图)探讨了无向图和有向图的概念,并构建了-些重要的术语。本章考察了若干常用图的算法,并讨论了各种实现,包括邻接矩阵。

附录A (UML)概述了统一建模语言。UML是表示面向对象系统的事实标准表示法。

附录B(面向对象设计)为任何需要回顾面向对象的基本概念及其在Java中如何实现等内容的读者提供参考。本附录包含的概念包括抽象、类、封装、继承、多态性以及许多相关的Java语言结构,比如接口。

附录C (Java图形编程)介绍了使用Java API绘制图形的基础知识。

附录D (图形用户接口)详细介绍了开发基于Swing的GUI所需的元素。本附录还给出了使用各种接口组件的多种示例。

附录E (散列)包括散列的概念及其相关问题,比如散列函数及冲突。本附录讨论了散列的各种Java Collections API。

附录F (正则表达式)介绍了正则表达式的使用,它在多种Java API (如Scanner 类)中发挥作用。

文档资料领取方式:点赞+关注,加微信号:AAAMAXIAOXIN 即可免费领取!

上一篇下一篇

猜你喜欢

热点阅读