学习JavaScript数据结构与算法pdf

学习JavaScript数据结构与算法pdf

编辑点评:

学习JavaScript数据结构与算法pdf是关于java编程的书籍,主要讲述了数组栈、队列、链表等等java相关的内容,以及一些常用的高级算法及相关知识。

学习JavaScript数据结构与算法pdf

电子书内容介绍

本书首先介绍了JavaScript 语言的基础知识以及ES6和ES7中引入的新功能,接下来讨论了数组、栈、队列、链表、集合、字典、散列表、树、图等数据结构,之后探讨了各种排序和搜索算法,包括冒泡排序、选择排序、插入排序、归并排序、快速排序、堆排序、计数排序、桶排序、基数排序、顺序搜索、二分搜索,然后介绍了动态规划和贪心算法等常用的高级算法以及函数式编程,最后还介绍了如何计算算法的复杂度。

书籍作者信息

Loiane Groner

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

本书结构

第1章“JavaScript简介”,讲述了JavaScript的基础知识,它们可以帮助你更好地学习数据结构和算法,同时还介绍了如何搭建开发环境来运行书中的代码示例。

第2章“数组”,介绍了如何使用数组这种最基础且最常用的数据结构。这一章演示了如何对数组声明、初始化、添加和删除其中的元素,还讲述了如何使用JavaScript语言本身支持的数组方法。

第3章“栈”,介绍了栈这种数据结构,演示了如何创建栈以及怎样添加和删除元素,还讨论了如何用栈解决计算机科学中的一些问题。

第4章“队列”,详述了队列这种数据结构,演示了如何创建队列,以及如何添加和删除队列中的元素,还讨论了如何用队列解决计算机科学中的一些问题,以及栈和队列的主要区别。

第5章“链表”,讲解如何用对象和指针从头创建链表这种数据结构。这一章除了讨论如何声明、创建、添加和删除链表元素之外,还介绍了不同类型的链表,例如双向链表和循环链表。

第6章“集合”,介绍了集合这种数据结构,讨论了如何用集合存储非重复性的元素。此外,还详述了对集合的各种操作以及相应代码的实现。

第7章“字典和散列表”,深入讲解字典、散列表及它们之间的区别。这一章介绍了这两种数据结构是如何声明、创建和使用的,还探讨了如何解决散列冲突,以及如何创建更高效的散列函数。

第8章“树”,讲解了树这种数据结构和它的相关术语,重点讨论了二叉搜索树,以及如何在树中搜索、遍历、添加和删除节点。如果想更深入地学习树(包括相关的算法),这一章还给出了一些建议。

第9章“图”,介绍了图这种数据结构和它的适用范围。这一章讲述了图的常用术语和不同表示方式,探讨了如何使用深度优先算法和广度优先算法遍历图,以及它们的适用范围。

第10章“排序和搜索算法”,探讨了常用的排序算法,如冒泡排序(包括改进版)、选择排序、插入排序、归并排序和快速排序。另外还介绍了搜索算法中的顺序搜索和二分搜索。

第11章“算法模式”,介绍了一些算法技巧和一些著名的算法。这一章讲解了什么是递归,介绍了一些高级算法,如动态规划和贪心算法。

第12章“算法复杂度”,介绍了大O表示法的概念,以及本书实现算法的复杂度列表。这一章还介绍了NP完全问题和启发式算法。最后,讲解了提升算法能力的诀窍。

电子书目录

第1章 JavaScript简介

1.1 环境搭建

1.1.1 浏览器

1.1.2 使用Web服务器(XAMPP)

1.1.3 使用Node.js搭建Web服务器

1.2 JavaScript基础

1.2.1 变量

1.2.2 操作符

1.2.3 真值和假值

1.2.4 相等操作符(==和===)

1.3 控制结构

1.3.1 条件语句

1.3.2 循环

1.4 函数

1.5 面向对象编程

1.6 调试工具

1.7 小结

第2章 数组

2.1 为什么用数组

2.2 创建和初始化数组

2.3 添加和删除元素

2.4 二维和多维数组

2.5 JavaScript的数组方法参考

2.5.1 数组合并

2.5.2 迭代器函数

2.5.3 搜索和排序

2.5.4 输出数组为字符串

2.6 小结

第3章 栈

3.1 栈的创建

栈的全部代码

3.2 从十进制到二进制

3.3 小结

第4章 队列

4.1 创建队列

4.1.1 完整的Queue类

4.1.2 使用Queue类

4.2 优先队列

4.3 循环队列——击鼓传花

4.4 小结

第5章 链表

5.1 创建一个链表

5.1.1 向链表尾部追加元素

5.1.2 从链表中移除元素

5.1.3 在任意位置插入一个元素

5.1.4 实现其他方法

5.2 双向链表

5.2.1 在任意位置插入一个新元素

5.2.2 从任意位置移除元素

5.3 循环链表

5.4 小结

第6章 集合

6.1 创建一个集合

6.1.1 has(value)方法

6.1.2 add方法

6.1.3 remove和clear方法

6.1.4 size方法

6.1.5 values方法

6.1.6 使用Set类

6.2 集合操作

6.2.1 并集

6.2.2 交集

6.2.3 差集

6.2.4 子集

6.3 小结

第7章 字典和散列表

7.1 字典

7.1.1 创建一个字典

7.1.2 使用Dictionary类

7.2 散列表

7.2.1 创建一个散列表

7.2.2 使用HashTable类

7.2.3 散列表和散列集合

7.2.4 处理散列表中的冲突

7.2.5 创建更好的散列函数

7.3 小结

第8章 树

8.1 树的相关术语

8.2 二叉树和二叉搜索树

8.2.1 创建BinarySearchTree类

8.2.2 向树中插入一个键

8.3 树的遍历

8.3.1 中序遍历

8.3.2 先序遍历

8.3.3 后序遍历

8.4 搜索树中的值

8.4.1 搜索最小值和最大值

8.4.2 搜索一个特定的值

8.4.3 移除一个节点

8.5 更多关于二叉树的知识

8.6 小结

第9章 图

9.1 图的相关术语

有向图和无向图

9.2 图的表示

9.2.1 邻接矩阵

9.2.2 邻接表

9.2.3 关联矩阵

9.3 创建图类

9.4 图的遍历

9.4.1 广度优先搜索

9.4.2 深度优先搜索

9.5 小结

第10章 排序和搜索算法

10.1 排序算法

10.1.1 冒泡排序

10.1.2 选择排序

10.1.3 插入排序

10.1.4 归并排序

10.1.5 快速排序

10.2 搜索算法

10.2.1 顺序搜索

10.2.2 二分搜索

10.3 小结

第11章 算法补充知识

11.1 递归

11.1.1 JavaScript调用栈大小的限制

11.1.2 斐波那契数列

11.2 动态规划

最少硬币找零问题

11.3 贪心算法

最少硬币找零问题

11.4 大O 表示法

11.4.1 理解大O 表示法

11.4.2 时间复杂度比较

11.5 用算法娱乐身心

11.6 小结

学习JavaScript数据结构与算法pdf截图

学习JavaScript数据结构与算法pdf插图(1)学习JavaScript数据结构与算法pdf插图(2)

评分及评论

无用户评分

来评个分数吧

  • 5 分
    0
  • 4 分
    0
  • 3 分
    0
  • 2 分
    0
  • 1 分
    0

Comments