学习JavaScript数据结构与算法 第2版pdf

图书网 2018年12月31日21:46:3634K1
摘要

数据结构是计算机为了高效地利用资源而组织数据的一种方式。数据结构和算法是解决一切编程问题的基础。

学习JavaScript数据结构与算法 第2版 内容简介

本书首先介绍了JavaScript 语言的基础知识以及ES6 和ES7 中引入的新功能,接下来讨论了数组、栈、队列、链表、集合、字典、散列表、树、图等数据结构,之后探讨了各种排序和搜索算法,包括冒泡排序、选择排序、插入排序、归并排序、快速排序、堆排序、计数排序、桶排序、基数排序、顺序搜索、二分搜索,然后介绍了动态规划和贪心算法等常用的高-级算法以及函数式编程,最后还介绍了如何计算算法的复杂度。

本书适用于前端Web 开发人员,以及所有对JavaScript 数据结构与算法感兴趣的读者。

学习JavaScript数据结构与算法 第2版 目录

第1章JavaScript简介1

1.1JavaScript数据结构与算法1

1.2环境搭建2

1.2.1最简单的环境搭建2

1.2.2使用Web服务器(XAMPP)4

1.2.3使用Node.js搭建Web服务器5

1.3JavaScript基础6

1.3.1变量7

1.3.2操作符9

1.3.3真值和假值11

1.3.4相等操作符(==和===)12

1.4控制结构14

1.4.1条件语句14

1.4.2循环15

1.5函数16

1.6JavaScript面向对象编程17

1.7调试工具18

1.8ECMAScript概述19

1.9ECMAScript6的功能21

1.9.1用let替代var声明变量21

1.9.2常量23

1.9.3模板字面量23

1.9.4箭头函数24

1.9.5函数的参数默认值24

1.9.6声明展开和剩余参数25

1.9.7使用类进行面向对象编程27

1.10ECMAScript7的功能29

1.11小结30

第2章数组31

2.1为什么用数组31

2.2创建和初始化数组32

2.3添加元素33

2.3.1使用push方法33

2.3.2插入元素到数组首位34

2.4删除元素34

2.5在任意位置添加或删除元素36

2.6二维和多维数组36

2.6.1迭代二维数组的元素37

2.6.2多维数组38

2.7JavaScript的数组方法参考39

2.7.1数组合并39

2.7.2迭代器函数40

2.7.3ECMAScript6和数组的新功能42

2.7.4排序元素46

2.7.5搜索48

2.7.6输出数组为字符串49

2.8类型数组50

2.9小结51

第3章栈52

3.1栈数据结构52

3.1.1创建栈53

3.1.2向栈添加元素53

3.1.3从栈移除元素53

3.1.4查看栈顶元素54

3.1.5检查栈是否为空54

3.1.6清空和打印栈元素54

3.2ECMAScript6和Stack类56

3.3用栈解决问题59

3.4小结61

第4章队列62

4.1队列数据结构62

4.2创建队列63

4.2.1向队列添加元素63

4.2.2从队列移除元素63

4.2.3查看队列头元素64

4.2.4检查队列是否为空64

4.2.5打印队列元素64

4.3用ECMAScript6语法实现的Queue类66

4.4优先队列66

4.5循环队列——击鼓传花68

4.6JavaScript任务队列70

4.7小结70

第5章链表71

5.1链表数据结构71

5.2创建链表72

5.2.1向链表尾部追加元素73

5.2.2从链表中移除元素75

5.2.3在任意位置插入元素77

5.2.4实现其他方法79

5.3双向链表82

5.3.1在任意位置插入新元素82

5.3.2从任意位置移除元素85

5.4循环链表87

5.5小结88

第6章集合89

6.1构建数据集合89

6.2创建集合89

6.2.1has(value)方法90

6.2.2add方法91

6.2.3remove和clear方法91

6.2.4size方法92

6.2.5values方法93

6.2.6使用Set类93

6.3集合操作94

6.3.1并集94

6.3.2交集95

6.3.3差集97

6.3.4子集98

6.4ES6——Set类99

6.5小结101

第7章字典和散列表102

7.1字典102

7.1.1创建字典102

7.1.2使用Dictionary类105

7.2散列表106

7.2.1创建散列表106

7.2.2使用HashTable类108

7.2.3散列表和散列集合109

7.2.4处理散列表中的冲突109

7.2.5创建更好的散列函数117

7.3ES6——Map类118

7.4ES6——WeakMap类和WeakSet类118

7.5小结119

第8章树120

8.1树数据结构120

8.2树的相关术语121

8.3二叉树和二叉搜索树121

8.3.1创建BinarySearchTree类122

8.3.2向树中插入一个键123

8.4树的遍历126

8.4.1中序遍历126

8.4.2先序遍历127

8.4.3后序遍历128

8.5搜索树中的值129

8.5.1搜索最小值和最大值130

8.5.2搜索一个特定的值131

8.5.3移除一个节点133

8.6自平衡树137

8.6.1Adelson-Velskii-Landi树(AVL树)137

8.6.2更多关于二叉树的知识143

8.7小结143

第9章图144

9.1图的相关术语144

9.2图的表示146

9.2.1邻接矩阵146

9.2.2邻接表147

9.2.3关联矩阵148

9.3创建Graph类148

9.4图的遍历150

9.4.1广度优先搜索151

9.4.2深度优先搜索156

9.5最短路径算法162

9.5.1Dijkstra算法163

9.5.2Floyd-Warshall算法165

9.6最小生成树166

9.6.1Prim算法166

9.6.2Kruskal算法168

9.7小结169

第10章排序和搜索算法170

10.1排序算法170

10.1.1冒泡排序171

10.1.2选择排序174

10.1.3插入排序175

10.1.4归并排序176

10.1.5快速排序179

10.1.6堆排序183

10.1.7计数排序、桶排序和基数排序(分布式排序)186

10.2搜索算法187

10.2.1顺序搜索187

10.2.2二分搜索187

10.3小结189

第11章算法模式190

11.1递归190

11.1.1JavaScript调用栈大小的限制191

11.1.2斐波那契数列191

11.2动态规划193

11.2.1最少硬币找零问题194

11.2.2背包问题196

11.2.3最长公共子序列198

11.2.4矩阵链相乘200

11.3贪心算法202

11.3.1最少硬币找零问题203

11.3.2分数背包问题204

11.4函数式编程简介205

11.4.1函数式编程与命令式编程205

11.4.2ES2015和函数式编程206

11.4.3JavaScript函数式工具箱——

map、filter和reduce207

11.4.4JavaScript函数式类库和数据结构209

11.5小结209

第12章算法复杂度210

12.1大O表示法210

12.1.1理解大O表示法210

12.1.2时间复杂度比较212

12.1.3NP完全理论概述214

12.2用算法娱乐身心216

12.3小结217

学习JavaScript数据结构与算法 第2版 精彩文摘

1.1 JavaScript 数据结构与算法

在本书中,你将学习最常用的数据结构和算法。为什么用JavaScript来学习这些数据结构和算法呢?我们已经回答了这个问题。JavaScript非常受欢迎,作为函数式编程语言,它非常适合用来学习数据结构和算法。通过它来学习数据结构比C或Java这些标准语言更简单,学习新东西也会变得很有趣。谁说数据结构和算法只为C或Java这样的语言而生?在前端开发当中,你可能也需要实现这些语言。

图书网:学习JavaScript数据结构与算法 第2版pdf

继续阅读

→→→→→→→→→→→→→→→→→→→→查找获取

程序设计

重构 改善既有代码的设计(中文版)pdf

《重构:改善既有代码的设计》(中文版)所提的这些重构准则将帮助你一次一小步地修改你的代码,这就减少了过程中的风险。很快你就会把这些重构准则和其名称加入自己的开发词典中,并且朗朗上口...
程序设计

数据结构 C语言版 第2版pdf

适读人群 :普通高校电子信息大类本科生学习、考研,同时也适合零售和培训。 采用“案例驱动”的编写模式。书中结合实际应用,将各章按照“案例引入——数据结构及其操作——案例分析与实现”...
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

评论:3   其中:访客  3   博主  0
    • 王叶
      王叶 9

      不错

      • 229
        229 9

        666谢谢分享

        • 兄台你好
          兄台你好 4

          很想要这本书,谢谢