图书介绍

学习JavaScript数据结构与算法

  • [巴西] 格罗纳(Loiane Groner) 著 著
  • 店铺: 蓝墨水图书专营店
  • 出版社: 人民邮电出版社
  • ISBN:9787115404145
  • 版次:1
  • 上架时间:2015-10-12 10:48:27
  • 商品编码:1785197788
  • 开本:16
  • 出版时间:2015-10-01
  • 页数:1
  • 字数:1

PDF下载

立即下载

赞助商链接

图书目录

内容简介内容简介本书首先介绍了JavaScript语言的基础知识,接下来讨论了数组、栈、队列、链表、集合、字典、散列表、树、图等数据结构,之后探讨了各种排序和搜索算法,包括冒泡排序、选择排序、插入排序、归并排序、快速排序、顺序搜索、二分搜索,还介绍了动态规划和贪心算法等常用的高级算法及相关知识。作者推荐数据结构是计算机为了高效地利用资源而组织数据的一种方式。数据结构和算法是解决一切编程问题的基础。

本书首先介绍了JavaScript语言的基础知识,接着讨论了数组、队列、栈和链表等重要的数据结构,接下来深入分析了散列表、字典和集合的工作原理,然后阐述了什么是树以及如何使用二叉树和二叉搜索树。之后,你还会学到图、DFS和BFS算法,学会如何区分顺序搜索、二分搜索、快速排序、冒泡排序等各种搜索和排序算法,以及如何实现它们。本书还介绍了动态规划和贪心算法等高级算法。

如果你是一名JavaScript开发者或者具备JavaScript的基础知识,并且想探索它的能力,这本快节奏的书适合你。要开始享受算法的乐趣,你只需要了解编程逻辑。

你将从本书中学到:
在数组、栈和队列中声明、初始化、添加和删除元素;
创建和使用复杂的数据结构——图,以及DFS和BFS算法;
链表、双向链表和循环链表的作用;
用散列表、字典和集合存储不重复的元素;
二叉树和二叉搜索树的应用;
使用冒泡排序、选择排序、插入排序、归并排序和快速排序算法,对数据结构排序;
使用顺序搜索和二分搜索,搜索数据结构中的元素;
理解大O表示法、动态规划和贪婪算法的重要性。图书目录目录

第1章JavaScript简介1
1.1环境搭建1
1.1.1浏览器2
1.1.2使用Web服务器(XAMPP)3
1.1.3使用Node.js搭建Web服务器4
1.2JavaScript基础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.5JavaScript的数组方法参考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.1has(value)方法66
6.1.2add方法66
6.1.3remove和clear方法67
6.1.4size方法68
6.1.5values方法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.1JavaScript调用栈大小的
限制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
致谢160

查看全部 ↓

精品推荐