学习JavaScript数据结构与算法 第3版PDF电子书下载
- 电子书积分:11 积分如何计算积分?
- 作 者:(巴西)洛伊安妮·格罗纳(Loiane Groner)
- 出 版 社:北京:人民邮电出版社
- 出版年份:2019
- ISBN:9787115510174
- 页数:294 页
第1章 JavaScript简介 1
1.1 JavaScript数据结构与算法 1
1.2 环境搭建 2
1.2.1 最简单的环境搭建 2
1.2.2 使用Web服务器 3
1.2.3 Node.js http-server 5
1.3 JavaScript基础 5
1.3.1 变量 6
1.3.2 运算符 8
1.3.3 真值和假值 11
1.3.4 相等运算符(==和===) 12
1.4 控制结构 14
1.4.1 条件语句 14
1.4.2 循环 15
1.5 函数 16
1.6 JavaScript面向对象编程 17
1.7 调试工具 18
1.8 小结 20
第2章 ECMAScript和TypeScript概述 21
2.1 ECMAScript还是JavaScript 21
2.1.1 ES6、ES2015、ES7、ES2016、ES8、ES2017和ES.Next 21
2.1.2 使用Babel.js 23
2.2 ECMAScript 2015+的功能 24
2.2.1 用let替代var声明变量 24
2.2.2 模板字面量 27
2.2.3 箭头函数 27
2.2.4 函数的参数默认值 28
2.2.5 声明展开和剩余参数 29
2.2.6 增强的对象属性 30
2.2.7 使用类进行面向对象编程 31
2.2.8 乘方运算符 33
2.2.9 模块 33
2.3 介绍TypeScript 39
2.3.1 类型推断 40
2.3.2 接口 41
2.3.3 其他TypeScript功能 43
2.3.4 TypeScript中对JavaScript文件的编译时检查 43
2.4 小结 44
第3章 数组 45
3.1 为什么用数组 45
3.2 创建和初始化数组 46
3.3 添加元素 47
3.3.1 在数组末尾插入元素 47
3.3.2 在数组开头插入元素 48
3.4 删除元素 49
3.4.1 从数组末尾删除元素 49
3.4.2 从数组开头删除元素 49
3.5 在任意位置添加或删除元素 51
3.6 二维和多维数组 51
3.6.1 迭代二维数组的元素 52
3.6.2 多维数组 53
3.7 JavaScript的数组方法参考 54
3.7.1 数组合并 55
3.7.2 迭代器函数 55
3.7.3 ECMAScript 6和数组的新功能 57
3.7.4 排序元素 60
3.7.5 搜索 63
3.7.6 输出数组为字符串 64
3.8 类型数组 64
3.9 TypeScript中的数组 65
3.10 小结 66
第4章 栈 67
4.1 创建一个JavaScript数据结构和算法库 67
4.2 栈数据结构 68
4.2.1 创建一个基于数组的栈 69
4.2.2 向栈添加元素 69
4.2.3 从栈移除元素 70
4.2.4 查看栈顶元素 70
4.2.5 检查栈是否为空 71
4.2.6 清空栈元素 71
4.2.7 使用Stack类 71
4.3 创建一个基于JavaScript对象的Stack类 73
4.3.1 向栈中插入元素 73
4.3.2 验证一个栈是否为空和它的大小 74
4.3.3 从栈中弹出元素 74
4.3.4 查看栈顶的值并将栈清空 75
4.3.5 创建toString方法 75
4.4 保护数据结构内部元素 76
4.4.1 下划线命名约定 76
4.4.2 用ES2015的限定作用域Symbol实现类 77
4.4.3 用ES2015的WeakMap实现类 77
4.4.4 ECMAScript类属性提案 78
4.5 用栈解决问题 79
4.6 小结 81
第5章 队列和双端队列 82
5.1 队列数据结构 82
5.1.1 创建队列 83
5.1.2 使用Queue类 86
5.2 双端队列数据结构 87
5.2.1 创建Deque类 87
5.2.2 使用Deque类 89
5.3 使用队列和双端队列来解决问题 90
5.3.1 循环队列——击鼓传花游戏 90
5.3.2 文检查器 91
5.3.3 JavaScript任务队列 93
5.4 小结 93
第6章 链表 94
6.1 链表数据结构 94
6.2 双向链表 106
6.2.1 在任意位置插入新元素 107
6.2.2 从任意位置移除元素 109
6.3 循环链表 111
6.3.1 在任意位置插入新元素 112
6.3.2 从任意位置移除元素 113
6.4 有序链表 114
6.5 创建StackLinkedList类 116
6.6 小结 117
第7章 集合 118
7.1 构建数据集合 118
7.2 创建集合类 119
7.2.1 has(element)方法 119
7.2.2 add方法 120
7.2.3 delete和clear方法 120
7.2.4 size方法 121
7.2.5 values方法 122
7.2.6 使用Set类 122
7.3 集合运算 123
7.3.1 并集 123
7.3.2 交集 125
7.3.3 差集 127
7.3.4 子集 128
7.4 ECMAScript 2015——Set类 130
7.5 多重集或袋 132
7.6 小结 133
第8章 字典和散列表 134
8.1 字典 134
8.1.1 创建字典类 135
8.1.2 使用Dictionary类 141
8.2 散列表 142
8.2.1 创建散列表 143
8.2.2 使用HashTable类 146
8.2.3 散列表和散列集合 147
8.2.4 处理散列表中的冲突 147
8.2.5 创建更好的散列函数 158
8.3 ES2015 Map类 159
8.4 ES2105 WeakMap类和WeakSet类 159
8.5 小结 160
第9章 递归 161
9.1 理解递归 161
9.2 计算一个数的阶乘 162
9.2.1 迭代阶乘 162
9.2.2 递归阶乘 163
9.3 斐波那契数列 165
9.3.1 迭代求斐波那契数 166
9.3.2 递归求斐波那契数 166
9.3.3 记忆化斐波那契数 167
9.4 为什么要用递归?它更快吗 167
9.5 小结 168
第10章 树 169
10.1 树数据结构 169
10.2 树的相关术语 170
10.3 二叉树和二叉搜索树 170
10.3.1 创建BinarySearch-Tree类 171
10.3.2 向二叉搜索树中插入一个键 172
10.4 树的遍历 175
10.4.1 中序遍历 175
10.4.2 先序遍历 176
10.4.3 后序遍历 177
10.5 搜索树中的值 178
10.5.1 搜索最小值和最大值 178
10.5.2 搜索一个特定的值 180
10.5.3 移除一个节点 182
10.6 自平衡树 185
10.6.1 Adelson-Velskii-Landi树(AVL树) 185
10.6.2 红黑树 194
10.7 小结 200
第11章 二叉堆和堆排序 201
11.1 二叉堆数据结构 201
11.1.1 创建最小堆类 202
11.1.2 创建最大堆类 208
11.2 堆排序算法 209
11.3 小结 211
第12章 图 212
12.1 图的相关术语 212
12.2 图的表示 214
12.2.1 邻接矩阵 215
12.2.2 邻接表 215
12.2.3 关联矩阵 216
12.3 创建Graph类 216
12.4 图的遍历 219
12.4.1 广度优先搜索 220
12.4.2 深度优先搜索 225
12.5 最短路径算法 231
12.5.1 Dijkstra算法 232
12.5.2 Floyd-Warshall算法 234
12.6 最小生成树 235
12.6.1 Prim算法 236
12.6.2 Kruskal算法 237
12.7 小结 238
第13章 排序和搜索算法 239
13.1 排序算法 239
13.1.1 冒泡排序 239
13.1.2 选择排序 242
13.1.3 插入排序 244
13.1.4 归并排序 245
13.1.5 快速排序 247
13.1.6 计数排序 251
13.1.7 桶排序 253
13.1.8 基数排序 255
13.2 搜索算法 257
13.2.1 顺序搜索 257
13.2.2 二分搜索 258
13.2.3 内插搜索 260
13.3 随机算法 261
13.4 小结 262
第14章 算法设计与技巧 263
14.1 分而治之 263
14.2 动态规划 265
14.2.1 最少硬币找零问题 266
14.2.2 背包问题 268
14.2.3 最长公共子序列 270
14.2.4 矩阵链相乘 272
14.3 贪心算法 274
14.3.1 最少硬币找零问题 274
14.3.2 分数背包问题 275
14.4 回溯算法 276
14.4.1 迷宫老鼠问题 277
14.4.2 数独解题器 279
14.5 函数式编程简介 282
14.5.1 函数式编程与命令式编程 282
14.5.2 ES2015+和函数式编程 283
14.5.3 JavaScript函数式工具箱——map、filter和reduce 284
14.5.4 JavaScript函数式类库和数据结构 286
14.6 小结 286
第15章 算法复杂度 287
15.1 大O表示法 287
15.1.1 理解大O表示法 287
15.1.2 时间复杂度比较 289
15.1.3 NP完全理论概述 292
15.2 用算法娱乐身心 293
15.3 小结 294
- 《SQL与关系数据库理论》(美)戴特(C.J.Date) 2019
- 《看漫画学钢琴 技巧 3》高宁译;(日)川崎美雪 2019
- 《联吡啶基钌光敏染料的结构与性能的理论研究》李明霞 2019
- 《异质性条件下技术创新最优市场结构研究 以中国高技术产业为例》千慧雄 2019
- 《数据库技术与应用 Access 2010 微课版 第2版》刘卫国主编 2020
- 《“十三五”规划教材 中药鉴定学实验 供中药学 药学及相关专业使用 第2版》吴啟南 2018
- 《大数据Hadoop 3.X分布式处理实战》吴章勇,杨强 2020
- 《Power BI数据清洗与可视化交互式分析》陈剑 2020
- 《晚清民国船山学的接受与传播》吴戬著 2019
- 《数据失控》(美)约翰·切尼-利波尔德(John Cheney-Lippold)著 2019
- 《反脆弱》纳西姆·尼古拉斯·塔勒布 2014
- 《青少年管乐队训练曲集 基础 0001 长号 上低音管乐器(低音谱号谱) 大管》约翰·埃德蒙森,安妮·麦金蒂著;段颖译 2019
- 《青少年管乐队训练曲集 基础 1 铃鼓》约翰·埃德蒙森,安妮·麦金蒂著;段颖译 2019
- 《青少年管乐队训练曲集 基础 1 B调第一单簧管》约翰·埃德蒙森,安妮·麦金蒂著;段颖译 2019
- 《青少年管乐队训练曲集 基础 1 B调第二短号/小号》约翰·埃德蒙森,安妮·麦金蒂著;段颖译 2019
- 《青少年管乐队训练曲集 基础 1 E调上低音萨克斯管》约翰·埃德蒙森,安妮·麦金蒂著;段颖译 2019
- 《青少年管乐队训练曲集 基础 1 F调圆号》段颖译;(美)约翰·埃德蒙森,(美)安妮·麦金蒂 2019
- 《牙髓病学 生物学与临床视角》(意)多米尼科·里库奇,(巴西)小约瑟·斯奎拉编;陈刚,殷欣,苏阳责编;刘贺,汪林译 2020
- 《汉娜·阿伦特》(美)安妮·C·海勒著;张乐腾译 2019
- 《断背山》美安妮·普鲁著;宋瑛堂译 2019
- 《指向核心素养 北京十一学校名师教学设计 英语 七年级 上 配人教版》周志英总主编 2019
- 《办好人民满意的教育 全国教育满意度调查报告》(中国)中国教育科学研究院 2019
- 《北京生态环境保护》《北京环境保护丛书》编委会编著 2018
- 《人民院士》吴娜著 2019
- 《指向核心素养 北京十一学校名师教学设计 英语 九年级 上 配人教版》周志英总主编 2019
- 《中国人民的心》杨朔著;夕琳编 2019
- 《高等院校旅游专业系列教材 旅游企业岗位培训系列教材 新编北京导游英语》杨昆,鄢莉,谭明华 2019
- 《中华人民共和国成立70周年优秀文学作品精选 短篇小说卷 上 全2册》贺邵俊主编 2019
- 《指向核心素养 北京十一学校名师教学设计 数学 九年级 上 配人教版》周志英总主编 2019
- 《中华人民共和国成立70周年优秀文学作品精选 中篇小说卷 下 全3册》洪治纲主编 2019