搜索
高级检索
高级搜索
书       名 :
著       者 :
出  版  社 :
I  S  B  N:
文献来源:
出版时间 :
学习JavaScript数据结构与算法
0.00    
图书来源: 浙江图书馆(由图书馆配书)
  • 配送范围:
    全国(除港澳台地区)
  • ISBN:
    9787115404145
  • 作      者:
    (巴西)Loiane Groner著
  • 出 版 社 :
    人民邮电出版社
  • 出版日期:
    2015
收藏
编辑推荐
  数据结构是计算机为了高效地利用资源而组织数据的一种方式。数据结构和算法是解决一切编程问题的基础。
  《学习JavaScript数据结构与算法》首先介绍了JavaScript语言的基础知识,接着讨论了数组、队列、栈和链表等重要的数据结构,接下来深入分析了散列表、字典和集合的工作原理,然后阐述了什么是树以及如何使用二叉树和二叉搜索树。之后,你还会学到图、DFS和BFS算法,学会如何区分顺序搜索、二分搜索、快速排序、冒泡排序等各种搜索和排序算法,以及如何实现它们。本书还介绍了动态规划和贪心算法等高级算法。
  如果你是一名JavaScript开发者或者具备JavaScript的基础知识,并且想探索它的能力,这本快节奏的书适合你。要开始享受算法的乐趣,你只需要了解编程逻辑。
  你将从本书中学到:
  在数组、栈和队列中声明、初始化、添加和删除元素;
  创建和使用复杂的数据结构——图,以及DFS和BFS算法;
  链表、双向链表和循环链表的作用;
  用散列表、字典和集合存储不重复的元素;
  二叉树和二叉搜索树的应用;
  使用冒泡排序、选择排序、插入排序、归并排序和快速排序算法,对数据结构排序;
  使用顺序搜索和二分搜索,搜索数据结构中的元素;
  理解大O表示法、动态规划和贪婪算法的重要性。
展开
作者简介
  Loiane Groner,花旗银行软件开发经理,负责海外项目的开发和团队管理;原IBM公司系统分析师及团队负责人;巴西坎皮纳斯Java用户组(CampinasJUG)领导者、圣埃斯皮里图Java用户组(ESJUG)协调人;巴西各大型技术会议特邀发言人;Sencha和Java技术布道者,通过博客为软件开发社区撰稿,发表关于IT职业发展和常用开发技术的文章和视频。另著有《精通Ext JS》等书。
展开
内容介绍
  《学习JavaScript数据结构与算法》首先介绍了JavaScript语言的基础知识,接下来讨论了数组、栈、队列、链表、集合、字典、散列表、树、图等数据结构,之后探讨了各种排序和搜索算法,包括冒泡排序、选择排序、插入排序、归并排序、快速排序、顺序搜索、二分搜索,还介绍了动态规划和贪心算法等常用的高级算法及相关知识。
展开
精彩书评
  “这本书非常适合用来学习数据结构与算法。书中的例子写得很好,易于学习和实践。其教学方法也比一般的C/C++书籍好得多。我向很多人推荐了这本书,尤其是从其他语言转到JavaScript的人。我看过各种编程语言的很多书籍和参考指南,这一本是其中的著作之一。”
  ——读者评论

  “如果你没上过算法课程,但是想学习实现常用的JavaScript数据结构和算法,或者拥有JavaScript背景,并想提升技能,那么一定要看看这本书!”
  ——读者评论
展开
目录
第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
展开
加入书架成功!
收藏图书成功!
我知道了(3)
发表书评
读者登录

请选择您读者所在的图书馆

选择图书馆
浙江图书馆
点击获取验证码
登录
没有读者证?在线办证