data-structure_algorithm icon indicating copy to clipboard operation
data-structure_algorithm copied to clipboard

🐎JavaScript数据结构和算法

从零开始学习数据结构和算法

前言

数据结构和算法这道坎,我们总归是要迈过去的,为什么不是现在呢?

刷题

传送门

做为刷题过程的辅助工具,配套数据结构以及基础算法的详解以及实现。

数据结构

  • 栈 - Stack
    • 使用hash实现栈
    • 使用数组实现栈
    • 使用symbol+数组实现栈
  • 队列 - queue
    • 使用数组实现队列
    • 使用hash实现队列
    • 使用两个栈实现队列
    • 优先队列
    • 循环队列的运用-击鼓传花
    • 火车车厢重排问题
  • 链表 - linked-list
    • 单向链表
    • 双向链表
    • 循环单向链表
    • 如何反转单向链表
  • 集合 - set
  • 树 - tree
    • 实现二叉搜索树
    • 反转二叉树
  • 字典 - dictionary
  • 图 - graph

算法

  • 常用排序和搜索算法

    • 冒泡排序
    • 选择排序
    • 插入排序
    • 归并排序
    • 快速排序
    • 堆排序
    • 计数排序
    • 桶排序
    • 基数排序
  • 递归

    • 求一个数组的子集
    • 回溯算法
      • 老鼠逃出迷宫
    • 斐波那契数列的尾递归优化
    • 深度优先搜索和广度优先搜索
    • 组合问题
      • 从一个数组中取出多个元素
    • 重复子问题优化
      • 斐波那契数列优化
      • 斐波那契数列复杂版(上台阶/爬楼梯)优化
    • 求一个数组中N个数字和为M的解
    • N皇后
  • 动态规划

    • 解析URL字符串
    • 数网格中的路径
  • 未分类算法

    • 汉诺塔

Map

map

总结

  • 无他术,唯勤读书而多为之,自工