教材《数据结构(JavaScript语言版)》正式出版!

《数据结构(JavaScript语言版)》由科学出版社正式出版

2022年0月,教材《数据结构(JavaScript语言版)》由科学出版社出版。本书由浙江大学董树锋老师主持编写,课题组多名成员参与编写。

## 本书出版的初衷

本书是为“数据结构”课程编写的教材,前面两章介绍了数学基础和算法相关预备知识,第3章至第10章介绍了常见数据结构的抽象数据类型、算法实现、性能分析及其应用。本书注重全面运用数据结构知识解决实际问题的案例介绍,同时也穿插了程序设计的技巧。全书采用了JavaScript语言作为数据结构和算法的描述语言,介绍了常见的数据结构的实现原理,例如ArrayList,LinkedList,HashMap 等,对于高效使用这些对象,提高程序性能有指导意义,特别适合 JavaScript 语言的进阶学习者。本书提供了大量设计精良的代码,且不乏对算法背后所蕴含数学原理的精彩介绍,使读者不仅能够开发出高效、精致的程序,而且达到“知其然,也知其所以然”的效果。

如何使用本书

本书适合作为高等院校计算机专业或信息类相关专业的本科或专科教材,也非常适合信息技术和工程应用行业的工作者作为自学参考书。作为教材讲授,学时可分为 48∼64 个,教师可根据学时和学生的实际情况,选讲或不讲外部排序、B-树、红黑树、优先队列等章节。本书循序渐进,简明易懂,便于自学,若具有离散数学的基础,则对本书某些内容的理解更加容易。

本书每一章内容结构都保持统一,以方便读者阅读和参考。每一章以简介开始,然后是一系列与主题相关的内容和应用的介绍。讲解每一种数据结构和算法时都以介绍开头,主要介绍数据结构和算法是如何工作的。然后是抽象数据类型的定义,该定义并不局限于某种语言,能够让读者快速了解该数据结构所具有的操作和功能。然后是具体的实现以及分析,这部分是抽象数据类型的 JavaScript 语言实现,对程序代码以及实现的性能给出了更细致的讲解。最后,对于大部分数据结构和算法本书还给出了实际应用的例子。每一种数据结构和算法的引入都会先介绍其基本概念,然后再逐步深入代码实现细节,因此,读者能方便地根据需要找到自己感兴
趣的部分。
本书相关代码可以到“http://sgool.zju.edu.cn”网站下载,网站提供了常见数据结构的完整实现及其单元测试代码,便于学生模仿和借鉴,IT 从业人员在解决实际问题时也可以直接应用本书的数据结构实现。

内容提要

第1章绪论界定“数据结构”课程讨论的范围,以及学习数据结构的意义,并回顾了其余章节所需要的基本的数学基础。

第2章算法分析从运行时间和存储空间两个方面介绍评估算法复杂的估计方法。

第3章线性表首先介绍抽象数据类型的概念以及线性表的抽象数据类型,然后分别介绍线性表的数组实现和链表实现,最后介绍链表在多项式计算中的应用实例

第4章栈和队列介绍两种特殊的线性表,即栈和队列,它们是经常用到的、非常重要的数据结构,在需要后进先出或先进先出的场合,要首先想到用它们来帮助解决问题。

第5章矩阵则是对线性表在科学计算中应用的介绍,重点介绍特殊矩阵的压缩存储方法,用更加复杂的链表形式十字链表实现稀疏矩阵的存储以及常见的运算。

第6章查找和散列表介绍一种新的数据结构——散列表,在介绍散列表之前本书介绍了在线性表上的查找方法。为了提高查找效率,人们发明了散列表,应用散列表在查找元素时可根据关键字一次存取便可取得元素,不仅查找便捷,而且插入删除也很快捷。

第7章排序介绍计算机中排序的实现方法,本书从原理和实现两个方面分别介绍内排序和外排序的常见方法,并在第 3 章和第 4 章中实现的数据结构 ArrayList 和 SList 中加入排序的操作。

第8章树介绍一种非线性的数据结构——树,首先介绍树的概念、术语以及在编译器设计和编码等领域的应用实例,最后重点介绍应用于查找与排序的树(查找树)的基础知识及其实现。

第9章优先队列(堆)介绍一种通常用二叉树来实现的数据结构——优先队列,这是一种非常讲究的数据结构,而且应用得非常广泛。

第10章图论算法介绍比树更加复杂的非线性数据结构——图,首先介绍图的存储和遍历算法,然后介绍图在工程管理、通信网、交通网规划设计、路由选择等几个领域的应用。

致谢

本书内容由浙江大学董树锋老师主持编写,浙江大学博士研究生叶星汝和万克能源科技有限公司高级架构师刘荣雷参与编写,具体分工是:董树锋编写书籍的文字部分,叶星汝和刘荣雷完成了本书所有代码的编写与测试。

本书在编写过程中参考了很多国内外文献、书籍和网络资料,在此向这些文献和资料的作者表示感谢。




版权声明:本文由SGOOL团队创作和发表,转载或引用本文内容请注明作者及出处。

当前网速较慢或者你使用的浏览器不支持博客特定功能,请尝试刷新或换用Chrome、Firefox等现代浏览器