




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
学习JavaScript数据结构与算法(第3版)读书笔记模板01思维导图读书笔记目录分析内容摘要精彩摘录作者介绍目录0305020406思维导图第版数据结构算法排序算法搜索原理队列小结类算法第章函数数据结构元素问题搜索创建值本书关键字分析思维导图内容摘要内容摘要本书首先介绍了JavaScript语言的基础知识(包括ECMAScript和TypeScript),其次讨论了数组、栈、队列、双端队列和链表等重要的数据结构,随后分析了集合、字典和散列表的工作原理,接下来阐述了递归的原理、什么是树以及二叉堆和堆排序,然后介绍了图、DFS和BFS算法、各种排序(冒泡排序、选择排序、插入排序、归并排序、快速排序、计数排序、桶排序和基数排序)和搜索(顺序搜索、二分搜索和内插搜索)算法以及随机算法,接着介绍了分而治之、动态规划、贪心算法和回溯算法等高级算法以及函数式编程,最后还介绍了如何计算算法的复杂度。读书笔记读书笔记前面介绍JavaScript的没必要看,对于基础不好的讲的太模糊了,对于基础好的那就更没必要看了,算法部分介绍的挺全面的,喜欢的同学可以深入钻研一下,就算不打算学算法的也可以看看,很多思路都是很清晰的,会提升你的编程思想。很不错的一本书,简单明了的解释了这些算法,至少有了一个大致的了解,后续加强练习。好书啊,对我帮助很大,想要巩固一下数据结构与算法的同学可以看一下,讲得非常好,墙裂推荐!。太过于笼统了,不够细致,但是对于复习或者只是了解js算法怎么写的还是可以的。这是一本极好的数据结构和算法的入门学习书籍,作者专业知识扎实,深入浅出的将数据结构的概念娓娓道来,同时还有渊博的前端知识体系,非常值得一读。适合零基础的前端开发阅读,特别是一些数据结构的概念。作为入门了解数据结构和算法真心不错,市面上以js为语言基础来讲解的也不多,写的很好。适合以JS作为数据结构和算法入门的书籍,书中关于前面的JS基础介绍基础扎实的同学其实可以略读,基础不好的同学建议还是先多看看JS犀牛书、JS红皮书后再来阅读本书。精彩摘录精彩摘录当遇到对象时,只读的const允许我们修改或重新赋值对象的属性,但变量本身的引用(内存中的引用地址)不可以修改,也就是不能对这个变量重新赋值。栈是一种遵从后进先出(LIFO)原则的有序集合。使用prototype方法可以节约内存和降低实例化的开销。不过prototype方法只能声明public函数和属性,而类定义可以声明只在类的内部访问的private函数和属性。在数组中,我们可以直接访问任何位置的任何元素,而要想访问链表中间的一个元素,则需要从起点(表头)开始迭代链表直到找到所需的元素。链表存储有序的元素集合,但不同于数组,链表中的元素在内存中并不是连续放置的二叉搜索树(BST)是二叉树的一种,但是只允许你在左侧节点存储(比父节点)小的值,在右侧节点存储(比父节点)大的值。每个递归函数都必须有基线条件,即一个不再递归调用的条件(停止点),以防止无限递归。目录分析1.1JavaScript数据结构与算法1.2环境搭建1.3JavaScript基础1.4控制结构第1章JavaScript简介1.5函数1.6JavaScript面向对象编程1.7调试工具1.8小结第1章JavaScript简介1.2环境搭建1.2.1最简单的环境搭建1.2.2使用Web服务器1.tp-server1.3JavaScript基础1.3.1变量1.3.2运算符1.3.3真值和假值1.3.4相等运算符(==和===)1.4控制结构1.4.1条件语句1.4.2循环2.2ECMAScript2015+的功能2.1ECMAScript还是JavaScript第2章ECMAScript和TypeScript概述2.4小结2.3介绍TypeScript第2章ECMAScript和TypeScript概述2.1ECMAScript还是JavaScript2.1.1ES6、ES2015、ES7、ES2016、ES8、ES2017和ES.Next2.1.2使用Babel.js2.2ECMAScript2015+的功能2.2.1用let替代var声明变量2.2.2模板字面量2.2.3箭头函数2.2.4函数的参数默认值2.2.5声明展开和剩余参数2.2.6增强的对象属性2.2.7使用类进行面向对象编程2.2.8乘方运算符2.2.9模块2.3介绍TypeScript2.3.1类型推断2.3.2接口2.3.3其他TypeScript功能2.3.4TypeScript中对JavaScript文件的编译时检查3.1为什么用数组3.3添加元素3.2创建和初始化数组第3章数组3.4删除元素3.5在任意位置添加或删除元素3.6二维和多维数组3.7JavaScript的数组方法参考3.8类型数组12345第3章数组3.10小结3.9TypeScript中的数组第3章数组3.3添加元素3.3.1在数组末尾插入元素3.3.2在数组开头插入元素3.4删除元素3.4.1从数组末尾删除元素3.4.2从数组开头删除元素3.6二维和多维数组3.6.1迭代二维数组的元素3.6.2多维数组3.7JavaScript的数组方法参考3.7.1数组合并3.7.2迭代器函数3.7.3ECMAScript6和数组的新功能3.7.4排序元素3.7.5搜索3.7.6输出数组为字符串4.1创建一个JavaScript数据结构和算法库4.2栈数据结构4.3创建一个基于JavaScript对象的Stack类4.4保护数据结构内部元素第4章栈4.6小结4.5用栈解决问题第4章栈4.2栈数据结构4.2.1创建一个基于数组的栈4.2.2向栈添加元素4.2.3从栈移除元素4.2.4查看栈顶元素4.2.5检查栈是否为空4.2.6清空栈元素4.2.7使用Stack类4.3创建一个基于JavaScript对象的Stack类4.3.1向栈中插入元素4.3.2验证一个栈是否为空和它的大小4.3.3从栈中弹出元素4.3.4查看栈顶的值并将栈清空4.3.5创建toString方法4.4保护数据结构内部元素4.4.1下划线命名约定4.4.2用ES2015的限定作用域Symbol实现类4.4.3用ES2015的WeakMap实现类4.4.4ECMAScript类属性提案5.1队列数据结构5.2双端队列数据结构5.3使用队列和双端队列来解决问题5.4小结第5章队列和双端队列5.1队列数据结构5.1.1创建队列5.1.2使用Queue类5.2双端队列数据结构5.2.1创建Deque类5.2.2使用Deque类5.3使用队列和双端队列来解决问题5.3.1循环队列——击鼓传花游戏5.3.2回文检查器5.3.3JavaScript任务队列6.1链表数据结构6.2双向链表6.3循环链表6.4有序链表第6章链表6.6小结6.5创建StackLinkedList类第6章链表6.2双向链表6.2.1在任意位置插入新元素6.2.2从任意位置移除元素6.3循环链表6.3.1在任意位置插入新元素6.3.2从任意位置移除元素7.1构建数据集合7.2创建集合类7.3集合运算7.4ECMAScript2015——Set类7.5多重集或袋7.6小结010302040506第7章集合7.2创建集合类7.2.1has(element)方法7.2.2add方法7.2.3delete和clear方法7.2.4size方法7.2.5values方法7.2.6使用Set类7.3集合运算7.3.1并集7.3.2交集7.3.3差集7.3.4子集8.1字典8.2散列表8.3ES2015Map类8.4ES2105WeakMap类和WeakSet类8.5小结12345第8章字典和散列表8.1字典8.1.1创建字典类8.1.2使用Dictionary类8.2散列表8.2.1创建散列表8.2.2使用HashTable类8.2.3散列表和散列集合8.2.4处理散列表中的冲突8.2.5创建更好的散列函数9.1理解递归9.2计算一个数的阶乘9.3斐波那契数列9.4为什么要用递归?它更快吗9.5小结12345第9章递归9.2计算一个数的阶乘9.2.1迭代阶乘9.2.2递归阶乘9.3斐波那契数列9.3.1迭代求斐波那契数9.3.2递归求斐波那契数9.3.3记忆化斐波那契数10.1树数据结构10.2树的相关术语10.3二叉树和二叉搜索树10.4树的遍历第10章树10.5搜索树中的值10.7小结10.6自平衡树第10章树10.3二叉树和二叉搜索树10.3.1创建BinarySearchTree类10.3.2向二叉搜索树中插入一个键10.4树的遍历10.4.1中序遍历10.4.2先序遍历10.4.3后序遍历10.5搜索树中的值10.5.1搜索最小值和最大值10.5.2搜索一个特定的值10.5.3移除一个节点10.6自平衡树10.6.1Adelson-Velskii-Landi树(AVL树)10.6.2红黑树11.1二叉堆数据结构11.3小结11.2堆排序算法第11章二叉堆和堆排序11.1二叉堆数据结构11.1.1创建最小堆类11.1.2创建最大堆类12.1图的相关术语12.2图的表示12.3创建Graph类12.4图的遍历12.5最短路径算法12345第12章图12.7小结12.6最小生成树第12章图12.2图的表示12.2.1邻接矩阵12.2.2邻接表12.2.3关联矩阵12.4图的遍历12.4.1广度优先搜索12.4.2深度优先搜索12.5最短路径算法12.5.1Dijkstra算法12.5.2Floyd-Warshall算法12.6最小生成树12.6.1Prim算法12.6.2Kruskal算法13.1排序算法13.2搜索算法13.3随机算法13.4小结第13章排序和搜索算法13.1排序算法13.1.1冒泡排序13.1.2选择排序13.1.3插入排序13.1.4归并排序13.1.5快速排序13.1.6计数排序13.1.7桶排序13.1.8基数排序13.2搜索算法13.2.1顺序搜索13.2.2二分搜索13.2.3内插搜索14.1分而治之14.2动态规划14.3贪心算法14.4回溯算法14.5函数式编程简介14.6小结010302040506第14章算法设计与技巧14.2动态规划14.2.1最少硬币找零问题14.2.2背包问题14.2.3最长公共子序列14.2.4矩阵链相乘14.3贪心算法14.3.1最少硬币找零问题14.3.2分数背包问题14.4回溯算法14.4.1迷宫老鼠问题14.4.2数独解题器14.5函数式编程简介14.5.1函数式编程与命令
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 市政工程专项施工方案
- 河道引流的施工方案
- 被动网施工方案
- 硬岩竖井施工方案
- 格栅幕墙施工方案
- 二零二五年度债权债务资产保全执行合同
- 2025年度离婚财产分割及子女成长环境优化协议书
- 二零二五年度美容仪器加盟保证金及售后服务合同
- 2025年度跨境电商平台员工劳动合同解除书
- 二零二五年度公益歌曲委托创作与宣传推广合同
- 人事管理管理制度
- 临床检验基础-课件
- 大型储罐计算书
- 2022-2023学年广东省广州市荔湾区统考初三第一次模考数学试题含解析
- 针对本项目售后服务方案
- 2022年桂林电子科技大学高等学历继续教育学士学位英语考试真
- 新人教版七至九年级英语单词表 汉译英(含音标)
- 新固废法课件PPT
- 侯马北车辆段2023年运用机考复习题-曲沃作业场
- 城市轨道交通深基坑施工作业指导书
- 新人教版五年级下册小学数学全册课时练(一课一练)
评论
0/150
提交评论