用js来实现那些数据结构及算法—目录

首先,有一点要声明,下面所有文章的所有内容的代码,都不是我一个人独立完成的,它们来自于一本叫做《学习JavaScript数据结构和算法》(第二版),人民邮电出版社出版的这本书。github代码地址是h

大家好,又见面了,我是你们的朋友全栈君。

  首先,有一点要声明,下面所有文章的所有内容的代码,都不是我一个人独立完成的,它们来自于一本叫做《学习JavaScript数据结构和算法》(第二版),人民邮电出版社出版的这本书。github代码地址是https://github.com/loiane/javascript-datastructures-algorithms。

  先说下我个人对这本书的看法吧。对于数据结构的介绍不够深入和详细,对于那些计算机专业的前端从业者来说,十分的鸡肋。而对于那些非计算机专业,又完全没接触过数据结构是什么东西的前端coder来说。其中的讲解又十分的不具体,很多内容都是寥寥数笔一带而过,完全没有代表性,对于思路的讲解并不明了,只是罗列了每一步骤,但是实际上单独的列举出每一步做了什么并没什么用,我自己看代码就可以了,用你说什么。当然,我也在网上找到了很多类似于本系列的文章,大多数都是基于此书的代码,但是要么就是完全复制的代码,解释十分的少或者几乎没有,要么就是整体不清不楚,让人不知所以然。

  所以,我就想在学习的过程中把自己的理解,自己对于这个数据结构的思路和每一行代码在上下文中所起到的作用以及相互之间的影响等等写出来。希望大家在学习数据结构的时候可以走的更容易一点。在学习的过程中,有不理解的地方,书中讲的不易理解的地方,都是自己画图,自己去找资料,然后再回来结合代码,给出一个“自认为”还不错的解释。

  终于,完成了有关用js来实现数据结构的所有内容,前后大概花了一个多月将近40小时的时间,一共16篇文章。有最基本的js数组的详细讲解。也有非线性的散列表、树和图。其实对于用js来实现数据结构,个人感觉更多要学习的是那种数据结构的思想。一旦你理解了这个数据结构的思想,那么自然,实现代码也不过就是时间的问题了。本系列所有的内容,都是我一个字一个字打出来的,包括书中的代码和自己加上的注释,当然,其中概念性的问题一部分来自于此书,书中解释不清楚的我都在文中附上了资料的链接。

  那么,如果各位老爷在阅读的时候有不理解或者觉得不清楚的地方,还希望可以留言提出。互相学习。

  噢,对,还是要说一下我觉得这个系列的重点吧。重点在后6篇和前3篇(Array,hashMap,Tree和Graph)。而对于前面的栈,队列等。是你学习后面的基础,因为在树,图等数据结构的实现中,都用到了前面的数据结构。

  所以,大家如果想要学习数据结构。那么个人觉得这系列文章是个不错的开始。或许你会问,我看完这系列文章会学到什么?我真的就懂了数据结构么?当然没有。就单单拿一个图来说,足够写一本厚厚的书了。所以,你学完这个系列,最多只是打开了数据结构的大门,迈出了你的右脚(或者左脚)向门里面的世界探了探,连走进这个大门都不算。

  

  最后说一下本系列的使用方法和大概的阅读时间吧。

  使用方法:首先,你把代码复制到本地,去掉所有的注释,然后就着文章,看一遍代码。然后自己打一遍代码,有不明白的地方再去看注释。这是本系列的服用说明。

  所花时间:每天一个小时,大概需要花上一个月。当然,不仅仅是读一遍,而是跟着文章中的代码和注释完整的过了一遍自己的脑子。

  好了,不罗嗦了。就到这里吧。也算是给自己的交上了一份6分的答卷。

  

 

  下面是目录:

    数据结构部分(已完结):

    1、用js来实现那些数据结构01(数组篇01-数组的增删)

    2、 用js来实现那些数据结构02(数组篇02-数组方法)

    3、用js来实现那些数据结构03(数组篇03-排序及多维数组)

    4、用js来实现那些数据结构04(栈01-栈的实现)

    5、用js来实现那些数据结构05(栈02-栈的应用)

    6、用js来实现那些数据结构06(队列)

    7、用js来实现那些数据结构07(链表01-链表的实现)

    8、用js来实现那些数据结构08(链表02-双向链表)

    9、用js来实现那些数据结构09(集合01-集合的实现)

    10、用js来实现那些数据结构10(集合02-集合的操作)

    11、用js来实现那些数据结构11(字典)

    12、用js来实现那些数据结构12(散列表)

    13、用js来实现那些数据结构13(树01-二叉搜索树的实现)

    14、用js来实现那些数据结构14(树02-AVL树)

    15、用js来实现那些数据结构15(图01)

    16、用js来实现那些数据结构16(图02-图的遍历)

 

    附:算法部分也基本上全部完成了,其中比如搜索、排序算法, 比如函数式编程这几篇文章是极力推荐大家去仔细阅读一下的,因为如果你对这方面没有深入的学习研究过,那么你阅读学习下面的文章之后,会有不小的收货。当然这里有一篇文章我个人的见解是你可以简单阅读,但是不懂也没什么关系,因为它对于算法已经算是较为深入的部分了,就是js算法初窥05(算法模式02-动态规划与贪心算法)这一篇,如果你本身就有算法基础,那么就当我没说。

    算法部分:

    1、js算法初窥01(排序算法01-冒泡、选择、插入)

    2、js算法初窥02(排序算法02-归并、快速以及堆排序)

    3、js算法初窥03(简单搜索及去重算法)

    4、js算法初窥04(算法模式01-递归)

    5、js算法初窥05(算法模式02-动态规划与贪心算法)

    6、js算法初窥06(算法模式03-函数式编程)

  

    最后,谢谢!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/124351.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长

相关推荐

  • linux vim命令详解_linux中查看文件内容的命令

    linux vim命令详解_linux中查看文件内容的命令 vim是linux中最基本的操作vim常用模式1、命令模式2、插入模式3、底行模式4、可视化模式,命令模式按v进入5、替换模式,命令模式下按r进入1、插入模式默认进入文件打开的是命令模式在这个模式下是不能插入字符的按“i”键,然后就进入到插入模式了,屏幕下面有个“–INSERT–”标识,很明显的现在就能写你的文档了,写完后按“Esc"键就…

    2022年10月29日
  • mybatiscodehelperpro激活成功教程2.8.4_idea 激活成功教程

    mybatiscodehelperpro激活成功教程2.8.4_idea 激活成功教程https://zhile.io/2019/04/23/mybatis-code-helper-pro-crack.html

    2022年9月21日
  • mdc和mdio是什么_mdc是哪个国家

    mdc和mdio是什么_mdc是哪个国家在项目开发中,经常会巧妙借助MDC解决链路跟踪、统计耗时等很多问题,通过往期分享的《MDC是什么鬼?用法、源码一锅端》,对MDC有了一个深入的了解,但是细心的同学在项目中,偶尔会发现NDC的身影(可能也从未谋面),那NDC到底是个什么玩意呢?别急,通过今天的分享,能让你轻松get如下几点。1.NDC快速入门;2.NDC与MDC有何不同;3.NDC刨根问底1.ND…

    2022年10月24日
  • CriticalSection_introducing critical thinking

    CriticalSection_introducing critical thinkingEnterCriticalSection

    2022年9月20日
  • mybatisplus整合springboot(Springboot框架)

    记得刚接触SpringBoot时,大吃一惊,世界上居然还有这么省事的框架,立马感叹:SpringBoot是世界上最好的框架。哈哈!当初跟着教程练习搭建了一个框架,传送门:springboot+jpa+bootstrap+thymeleaf简单的增删改查Demo后来进了新公司,用不到而且忙于任务,今天重温一遍居然有些忘了,看来真是好记性不如烂笔头。于是写下本篇SpringBo…

    2022年4月18日
  • 笔记本电脑无线投屏电视怎么设置(电脑投屏电视怎么设置)

    家用笔记本电脑和电视无线投屏设置1.打开电视,点我的应用,找到无线投屏按钮,遥控器点击。2.点Miracast3.笔记本电脑点右下角“通知”按钮,点击“连接”4.点击搜索到的电视名称,进行连接。5.电视节目会出现如下图所示提示,表示连接成功。6.点击“投影”可以更改笔记本和电视的显示方式。over!…

    2022年4月18日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号