学习JavaScript数据结构与算法

出版日期:2015-10-1
ISBN:9787115404143
作者:[巴西] 格罗纳(Loiane Groner)
页数:159页

内容概要

作者:[巴西] 格罗纳(Loiane Groner)
译者:孙晓博 邓钢 吴双 陈迪 袁源
Loiane Groner 花旗银行软件开发经理,负责海外项目的开发和团队管理;原IBM公司系统分析师及团队负责人;巴西坎皮纳斯Java用户组(CampinasJUG)领导者、圣埃斯皮里图Java用户组(ESJUG)协调人;巴西各大型技术会议特邀发言人;Sencha和Java技术布道者,通过博客(http://loianegroner.com)为软件开发社区撰稿,发表关于IT职业发展和常用开发技术的文章和视频。另著有《精通Ext JS》等书。

书籍目录

第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
致谢 160

作者简介

本书首先介绍了JavaScript语言的基础知识,接下来讨论了数组、栈、队列、链表、集合、字典、散列表、树、图等数据结构,之后探讨了各种排序和搜索算法,包括冒泡排序、选择排序、插入排序、归并排序、快速排序、顺序搜索、二分搜索,还介绍了动态规划和贪心算法等常用的高级算法及相关知识。


 学习JavaScript数据结构与算法下载 精选章节试读 更多精彩书评



发布书评

 
 


精彩书评 (总计2条)

  •     脉络很清晰,适合数据结构入门,但是发现文中的小bug不少,不知道是翻译过来造成的问题,还是原版也是这样。现在第二版好像已经发售了,很多问题应该会修正吧
  •     这本书很薄(160页不到),从图书馆借来三四天,断断续续翻着读完。非常不错的一本数据结构与算法的入门书籍。不论是哪种开发方向,对想学习数据结构与算法的人来说都是个不错的选择,尤其是本身数据结构与算法功底偏弱的前端开发人员(这点上你大可不必认可,起码我是这样的)。本书从从介绍JavaScript语言(有点鸡肋)入手,然后分别介绍了数组、栈、队列、链表等顺序结构,然后依次介绍了集合、字典和散列表、树和图等非顺序结构,最后介绍了下排序和搜索算法。本书的结尾提了一点关于动态规划和贪心算法、算法复杂度相关的知识,算是一个指引。全书介绍的比较基础,也比较详细,个人认为西方的作者都比较负责,写书也是娓娓道来,引人入境(当然也不全是所有的作者都这样)。当前前端工程师招聘中很少问及算法知识的,最多会问关于排序的算法(本书第10章全都有介绍或者过去我转载过的一篇博文http://www.cnblogs.com/front-Thinking/p/4314600.html)。但是随着前端工程师的人数激增,尤其是最近几年学前端的人会越来越多,再加上前端的范围越来越广,从前端发展为全栈,数据结构和算法的功底要求势必将越来越高。所以,前端开发人员不能仅仅局限于切页面和实现几个效果的范围,非常有必要补一补算法功底。所以,强烈推荐这本书。还是那句话,非常薄,三五天,随意翻翻即可读完。

精彩短评 (总计17条)

  •     两天读了一半,对初学者极其友好的一本书~
  •     第一版小错误很多,对着勘误表,不影响阅读。适合我这种没接触过数据结构与算法的人学习,作者思路清晰,入门读者理解。
  •     说非常不错会不会暴露我的小白属性咩
  •     一般。
  •     随便看看吧
  •     简单易懂,数据结构入门必读
  •     讲了基础的数据结构,适合数据结构和算法小白看看。存在一些错误,还是建议边看边敲,对照着《算法导论》和Sedgewick 的《算法》看
  •     作为基础,常见数据结构和算法的入门很不错。数据结构少了AVL和红黑树的代码,算法主要集中于排序算法。
  •     内容简单,但是零基础的也看得懂。
  •     读到最后一页才发现作者竟然是一位女性
  •     有些章节好,有些章节差,挑着看,当复习基础知识挺好。
  •     我的算法入门
  •     我默认这种名称都是高级内容了,但其实很初级。讲到中间还在讲数组。不过针对JavaScript而言,本身也没有高级特性,它的数据结构和算法也只能是转换一种形式而已。
  •     书里是基本数据结构的js实现,适合学js的小伙伴补数据结构的时候看
  •     如果能够更深入一些就好了
  •     这本书其实挺不错的,能够快速掌握一些很基本的东西,写的也很清晰。比那本动物书的js算法要好。
  •     这本书值得打8分9分,内容浅显易懂,给算法不怎么好的前端人员一个非常不错的入门指导。读后意犹未尽,如果再深入一点相信会更好。
 

外国儿童文学,篆刻,百科,生物科学,科普,初中通用,育儿亲子,美容护肤PDF图书下载,。 零度图书网 

零度图书网 @ 2024