学习Js数据结构与算法

2018.6.30 星期六 12:14

第 1 章 JavaScript 简介.1

1.1 环境搭建1

1.1.1 浏览器2
1.1.2 使用 Web 服务器(XAMPP)3
1.1.3 使用 Node.js 搭建 Web 服务器4

1.2 JavaScript 基础6

1.2.1 变量7
1.2.2 操作符8
1.2.3 真值和假值11
1.2.4 相等操作符(==和===)12

1.3 控制结构13

1.3.1 条件语句14
1.3.2 循环15

1.4 函数.16

1.5 面向对象编程16

1.6 调试工具18

1.7 小结.18

第 2 章 数组19

2.1 为什么用数组19

2.2 创建和初始化数组20

2.3 添加和删除元素21

2.4 二维和多维数组24

2.5 JavaScript 的数组方法参考.26

2.5.1 数组合并27
2.5.2 迭代器函数27
2.5.3 搜索和排序28
2.5.4 输出数组为字符串.31
2.6 小结.32

第 3 章 栈.33

3.1 栈的创建33

3.2 从十进制到二进制38

3.3 小结.39

第 4 章 队列40

4.1 创建队列40

4.1.1 完整的 Queue 类.42
4.1.2 使用 Queue 类.43

4.2 优先队列44

4.3 循环队列——击鼓传花.46

4.4 小结.47

第 5 章 链表48

5.1 创建一个链表49

5.1.1 向链表尾部追加元素.50
5.1.2 从链表中移除元素.52
5.1.3 在任意位置插入一个元素.54
5.1.4 实现其他方法56

5.2 双向链表58

5.2.1 在任意位置插入一个新元素.59
5.2.2 从任意位置移除元素.61

5.3 循环链表64

5.4 小结.64

第 6 章 集合65

6.1 创建一个集合65

6.1.1 has(value)方法66
6.1.2 add 方法66
6.1.3 remove 和 clear 方法67
6.1.4 size 方法68
6.1.5 values 方法.69
6.1.6 使用 Set 类.69

6.2 集合操作70

6.2.1 并集.70
6.2.2 交集.71
6.2.3 差集.72
6.2.4 子集.73
6.3 小结.74

第 7 章 字典和散列表.75

7.1 字典.75

7.1.1 创建一个字典75
7.1.2 使用 Dictionary 类78

7.2 散列表.79

7.2.1 创建一个散列表79
7.2.2 使用 HashTable 类81
7.2.3 散列表和散列集合.82
7.2.4 处理散列表中的冲突.82
7.2.5 创建更好的散列函数.90
7.3 小结.91

第 8 章 树.92

8.1 树的相关术语92

8.2 二叉树和二叉搜索树93

8.2.1 创建 BinarySearchTree 类.94
8.2.2 向树中插入一个键.95

8.3 树的遍历.98

8.3.1 中序遍历98
8.3.2 先序遍历99
8.3.3 后序遍历100

8.4 搜索树中的值101

8.4.1 搜索最小值和最大值.101
8.4.2 搜索一个特定的值.103
8.4.3 移除一个节点104

8.5 更多关于二叉树的知识.108

8.6 小结.109

第 9 章 图.110

9.1 图的相关术语110

9.2 图的表示.112

9.2.1 邻接矩阵112
9.2.2 邻接表.113
9.2.3 关联矩阵114

9.3 创建图类.114

9.4 图的遍历.116

9.4.1 广度优先搜索117
9.4.2 深度优先搜索122
9.5 小结.128

第 10 章 排序和搜索算法129

10.1 排序算法.129

10.1.1 冒泡排序130
10.1.2 选择排序133
10.1.3 插入排序134
10.1.4 归并排序135
10.1.5 快速排序138

10.2 搜索算法.142

10.2.1 顺序搜索143
10.2.2 二分搜索143
10.3 小结.145

第 11 章 算法补充知识146

11.1 递归.146

11.1.1 JavaScript 调用栈大小的 限制.147
11.1.2 斐波那契数列147

11.2 动态规划.149

11.3 贪心算法.152

11.4 大 O 表示法.153

11.4.1 理解大 O 表示法153
11.4.2 时间复杂度比较155

11.5 用算法娱乐身心156

11.6 小结.157

附录 A 时间复杂度速查表.158

12:22

knowledge is no pay,reward is kindness
0%