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

学习JavaScript数据结构与算法 第2版
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
作者: (Loiane Groner) , , , , ,
2017-09
版次: 2
ISBN: 9787115467539
定价: 49.00
装帧: 平装
开本: 16开
纸张: 胶版纸
页数: 217页
正文语种: 简体中文
分类: 教育
43人买过
  •   本书首先介绍了JavaScript 语言的基础知识以及ES6 和ES7 中引入的新功能,接下来讨论了数组、栈、队列、链表、集合、字典、散列表、树、图等数据结构,之后探讨了各种排序和搜索算法,包括冒泡排序、选择排序、插入排序、归并排序、快速排序、堆排序、计数排序、桶排序、基数排序、顺序搜索、二分搜索,然后介绍了动态规划和贪心算法等常用的高-级算法以及函数式编程,zui后还介绍了如何计算算法的复杂度。  本书适用于前端Web 开发人员,以及所有对JavaScript 数据结构与算法感兴趣的读者。   Loiane Groner 花旗银行软件开发经理,负责海外项目的开发和团队管理;原IBM公司系统分析师及团队负责人;巴西坎皮纳斯Java用户组(CampinasJUG)ling导者、圣埃斯皮里图Java用户组(ESJUG)协调人;巴西各大型技术会议特邀发言人;Sencha和Java技术布道者,通过博客(https://loianegroner.com)为软件开发社区撰稿,发表关于IT职业发展和常用开发技术的文章和视频。另著有《精通Ext JS》等书。 第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 语言的基础知识以及ES6 和ES7 中引入的新功能,接下来讨论了数组、栈、队列、链表、集合、字典、散列表、树、图等数据结构,之后探讨了各种排序和搜索算法,包括冒泡排序、选择排序、插入排序、归并排序、快速排序、堆排序、计数排序、桶排序、基数排序、顺序搜索、二分搜索,然后介绍了动态规划和贪心算法等常用的高-级算法以及函数式编程,zui后还介绍了如何计算算法的复杂度。  本书适用于前端Web 开发人员,以及所有对JavaScript 数据结构与算法感兴趣的读者。
  • 作者简介:
      Loiane Groner 花旗银行软件开发经理,负责海外项目的开发和团队管理;原IBM公司系统分析师及团队负责人;巴西坎皮纳斯Java用户组(CampinasJUG)ling导者、圣埃斯皮里图Java用户组(ESJUG)协调人;巴西各大型技术会议特邀发言人;Sencha和Java技术布道者,通过博客(https://loianegroner.com)为软件开发社区撰稿,发表关于IT职业发展和常用开发技术的文章和视频。另著有《精通Ext JS》等书。
  • 目录:
    第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
查看详情
12
系列丛书 / 更多
学习JavaScript数据结构与算法 第2版
机器学习实战
[美]Peter Harrington 著;李锐、李鹏、曲亚东 译
学习JavaScript数据结构与算法 第2版
图灵程序设计丛书:Python基础教程
[挪威]Magnus Lie Hetland 著;司维、曾军崴、谭颖华 译
学习JavaScript数据结构与算法 第2版
JavaScript高级程序设计(第3版)
[美]Nicholas C.Zakas 著;李松峰、曹力 译
学习JavaScript数据结构与算法 第2版
Python编程:从入门到实践
[美]埃里克·马瑟斯(Eric Matthes) 著;袁国忠 译
学习JavaScript数据结构与算法 第2版
R语言实战(第2版)
[美]卡巴科弗(Robert I. Kabacoff) 著;王小宁、刘撷芯、黄俊文 译
学习JavaScript数据结构与算法 第2版
算法(第4版)
[美]Robert、[美]Kevin Wayne 著;谢路云 译
学习JavaScript数据结构与算法 第2版
大数据:互联网大规模数据挖掘与分布式处理
[美]Anand、[美]Jeffrey David Ullman 著;王斌 译
学习JavaScript数据结构与算法 第2版
Spark快速大数据分析
[美]卡劳(Holden Karau)、[美]肯维尼斯科(Andy Konwinski)、[美]温德尔(Patrick Wendell)、[加拿大]扎哈里亚(Matei Zaharia) 著;王道远 译
学习JavaScript数据结构与算法 第2版
图解HTTP
[日]上野·宣 著;于均良 译
学习JavaScript数据结构与算法 第2版
MySQL必知必会
[英]福塔(Ben Forta) 著;刘晓霞、钟鸣 译
学习JavaScript数据结构与算法 第2版
Objective-C基础教程 第2版
[美]Scott、[美]Waqar、[美]Mark Dalrymple 著;周庆成 译
学习JavaScript数据结构与算法 第2版
算法图解
袁国忠 译
相关图书 / 更多
学习JavaScript数据结构与算法 第2版
学习Spring Boot 3.0
(美)格雷格·L.特恩奎斯特
学习JavaScript数据结构与算法 第2版
学习贯彻习近平新时代中国特色社会主义思想:打赢新冠肺炎疫情防控人民战争总体阻击战案例
全国干部培训教材编审委员会办公室/组织编写
学习JavaScript数据结构与算法 第2版
学习之光:用对方法,激发孩子的自主学习力
谢麟
学习JavaScript数据结构与算法 第2版
学习共同体:用课例告诉你 大夏书系
陈静静 等
学习JavaScript数据结构与算法 第2版
学习型城市视域下北京社区教育资源统筹管理研究
原珂 著
学习JavaScript数据结构与算法 第2版
学习任务群的课堂实践与深度评析
王林波;王冬精
学习JavaScript数据结构与算法 第2版
学习简史:从动物学习到机器学习
李韧
学习JavaScript数据结构与算法 第2版
学习二十大精神专家系列谈
中宣部《党建》杂志社党建网 著;中宣部党建杂志社党建网 编
学习JavaScript数据结构与算法 第2版
学习有方法.超级记忆法(全五册)
朝歌
学习JavaScript数据结构与算法 第2版
学习之路 : “八八战略”与新思想溯源
浙江日报全媒体评论理论部编著
学习JavaScript数据结构与算法 第2版
学习呼吸:重塑你的健康
许银姬,谈馨媛
学习JavaScript数据结构与算法 第2版
学习心理学(二十世纪中国心理学名著丛编)(梦山书系)
阮镜清 著