Logo
☆☆☆☆☆
0.0
Beginner
35h

JavaScript 编程面试中的数据结构

数据结构是计算机科学的基础核心内容之一,通常在开发高效程序时起到关键作用。因此,在行业面试中,数据结构也常被视为衡量计算机科学知识水平的重要标准。本课程详细回顾了所有常见的数据结构,并通过 JavaScript 提供实现层面的细节,帮助读者全面掌握各种数据结构,从而能够更有效地运用它们来编写高质量代码!

10 Lessons
Included in Subscription Plan
Personalized Learning
Powered by AI
JavaScript 编程面试中的数据结构
数据结构是计算机科学的基础核心内容之一,通常在开发高效程序时起到关键作用。因此,在行业面试中,数据结构也常被视为衡量计算机科学知识水平的重要标准。本课程详细回顾了所有常见的数据结构,并通过 JavaScript 提供实现层面的细节,帮助读者全面掌握各种数据结构,从而能够更有效地运用它们来编写高质量代...

Content

10 Lessons • 0 Quizzes • 0 Challenges

复杂度度量简介
  1. 1

    比较算法

  2. 2

    示例:测量单循环算法的时间复杂度

  3. 3

    示例:包含嵌套循环的算法的时间复杂度

  4. 4

    渐近分析与大O表示法简介

  5. 5

    其他常见的渐近符号及其为何大O符号占据主导地位

  6. 6

    实用公式

  7. 7

    常见的时间复杂度情况

  8. 8

    挑战:包含加法的嵌套循环的时间复杂度(Big O)

  9. 9

    解决方案:嵌套循环加上加法的时间复杂度(大O表示法)

  10. 10

    挑战:包含减法的嵌套循环的时间复杂度(Big O)

  11. 11

    解决方案:嵌套循环中带减法的时间复杂度分析

  12. 12

    挑战:包含乘法的嵌套循环的时间复杂度(Big O)

  13. 13

    解决方案:嵌套循环与乘法操作的时间复杂度(大O表示)

  14. 14

    挑战:嵌套循环与乘法(基础)

  15. 15

    解决方案:嵌套循环与乘法(基础)

  16. 16

    挑战:嵌套循环与乘法(中级)

  17. 17

    解决方案:嵌套循环与乘法(中级)

  18. 18

    挑战:嵌套循环与乘法(进阶)

  19. 19

    解决方案:嵌套循环与乘法(进阶)

  20. 20

    挑战:嵌套循环与乘法(专业版)

  21. 21

    解决方案:嵌套循环与乘法(专业版)

  22. 22

    测验:检验你对复杂度的理解

数组简介
  1. 1

    数组

  2. 2

    var、let 和 const 的区别

  3. 3

    挑战:从数组中移除偶数整数

  4. 4

    解决方案:从数组中移除偶数整数

  5. 5

    挑战:合并两个有序数组

  6. 6

    解决方案:合并两个有序数组

  7. 7

    挑战:找出两个相加等于 K 的数

  8. 8

    解决方案:找出两个相加等于 K 的数

  9. 9

    挑战:除自身以外数组的乘积

  10. 10

    解决方案:除自身以外数组的乘积

  11. 11

    挑战:在数组中找到最小值

  12. 12

    解决方案:在数组中查找最小值

  13. 13

    挑战:数组中的第一个非重复整数

  14. 14

    解决方案:数组中第一个不重复的整数

  15. 15

    挑战:在数组中找到第二大的值

  16. 16

    解决方案:在数组中查找第二大的值

  17. 17

    挑战:旋转数组

  18. 18

    解决方案:旋转数组

  19. 19

    挑战:重新排列正负数值

  20. 20

    解决方案:重新排列正负数值

  21. 21

    挑战:将已排序数组重新排列为最大/最小形式

  22. 22

    解决方案:将已排序数组重新排列为最大/最小形式

  23. 23

    挑战:最大子数组

  24. 24

    解决方案:最大子数组

  25. 25

    数组测验:检验你对数组的理解

链表简介
  1. 1

    单链表(SLL)

  2. 2

    基本链表操作

  3. 3

    单链表插入

  4. 4

    单向链表删除

  5. 5

    尾部删除

  6. 6

    链表与数组

  7. 7

    双向链表(DLL)

  8. 8

    单向链表与双向链表

  9. 9

    挑战:尾部插入

  10. 10

    解决方案:尾部插入

  11. 11

    挑战:在单链表中搜索

  12. 12

    解决方案:在单链表中进行搜索

  13. 13

    挑战:按值删除

  14. 14

    解决方案:按值删除

  15. 15

    挑战:查找链表的长度

  16. 16

    解决方案:查找链表的长度

  17. 17

    挑战:反转链表

  18. 18

    解决方案:反转链表

  19. 19

    挑战:链表环

  20. 20

    解决方案:链表环

  21. 21

    挑战:寻找链表的中间节点

  22. 22

    解决方案:链表的中间节点

  23. 23

    挑战:从链表中删除重复项

  24. 24

    解决方案:从链表中删除重复项

  25. 25

    挑战:链表的并集与交集

  26. 26

    解决方案:链表的并集与交集

  27. 27

    挑战:返回倒数第 N 个节点

  28. 28

    解决方案:返回倒数第 N 个节点

  29. 29

    挑战:判断一个双向链表是否为回文

  30. 30

    解决方案:判断一个双向链表是否为回文

  31. 31

    链表测验:检验你对链表的理解

栈和队列简介
  1. 1

    栈简介

  2. 2

    栈(实现)

  3. 3

    队列简介

  4. 4

    队列(实现)

  5. 5

    挑战:使用队列生成从 1 到 n 的二进制数

  6. 6

    解决方案:使用队列生成从 1 到 n 的二进制数

  7. 7

    挑战:使用一个数组实现两个栈

  8. 8

    解决方案:使用一个数组实现两个栈

  9. 9

    挑战:反转队列的前 k 个元素

  10. 10

    解决方案:反转队列的前 k 个元素

  11. 11

    挑战:使用栈实现队列

  12. 12

    解决方案:使用栈实现队列

  13. 13

    挑战:对栈中的值进行排序

  14. 14

    解决方案:对栈中的值进行排序

  15. 15

    挑战:使用栈计算后缀表达式

  16. 16

    解决方案:使用栈计算后缀表达式

  17. 17

    挑战:使用栈寻找下一个更大元素

  18. 18

    解决方案:使用栈寻找下一个更大元素

  19. 19

    挑战:寻找名人

  20. 20

    解决方案:寻找名人

  21. 21

    挑战:有效的括号

  22. 22

    解决方案:有效的括号

  23. 23

    挑战:最小栈

  24. 24

    解决方案:最小栈

  25. 25

    栈/队列测验:检验你对栈和队列的理解

图论简介
  1. 1

    图的基本概念

  2. 2

    图的类型

  3. 3

    图的表示

  4. 4

    图的实现

  5. 5

    图操作的复杂度

  6. 6

    什么是二分图?

  7. 7

    图遍历算法

  8. 8

    挑战:实现广度优先搜索

  9. 9

    解决方案:实现广度优先搜索

  10. 10

    挑战:实现深度优先搜索

  11. 11

    解决方案:实现深度优先搜索

  12. 12

    挑战:检测有向图中的环

  13. 13

    解决方案:检测有向图中的环

  14. 14

    挑战:在有向图中找到一个母顶点

  15. 15

    解决方案:在有向图中寻找一个母顶点

  16. 16

    挑战:计算无向图中的边数

  17. 17

    解决方案:计算无向图中的边数

  18. 18

    挑战:检查两点之间是否存在路径

  19. 19

    解决方案:检查两点之间是否存在路径

  20. 20

    挑战:图是否为有效树

  21. 21

    解决方案:有效的树

  22. 22

    挑战:寻找两个顶点之间的最短路径

  23. 23

    解决方案:寻找两个顶点之间的最短路径

  24. 24

    挑战:从有向图中移除一条边

  25. 25

    解决方案:从有向图中移除一条边

  26. 26

    图论测验:检验你对图的理解

树结构简介
  1. 1

    树的基础概念与基本性质简介!

  2. 2

    什么是二叉树?

  3. 3

    什么使得一棵树是“平衡”的?

  4. 4

    关于完全二叉树的更多内容

  5. 5

    倾斜二叉树

  6. 6

    什么是二叉搜索树(BST)?

  7. 7

    在 JavaScript 中实现二叉搜索树

  8. 8

    二叉搜索树插入

  9. 9

    二叉搜索树插入(实现)

  10. 10

    前序遍历

  11. 11

    中序遍历

  12. 12

    后序遍历

  13. 13

    在二叉搜索树中进行搜索(实现)

  14. 14

    二叉搜索树中的删除操作

  15. 15

    二叉搜索树中的删除操作(实现)

  16. 16

    什么是 AVL 树?

  17. 17

    AVL 插入

  18. 18

    AVL 删除

  19. 19

    什么是红黑树?

  20. 20

    红黑树插入

  21. 21

    红黑树删除

  22. 22

    什么是2-3树?

  23. 23

    2-3 插入

  24. 24

    2-3 树删除操作(待删除元素位于叶节点)

  25. 25

    2-3 树删除操作(待删除元素位于内部节点)

  26. 26

    2-3-4 树

  27. 27

    树结构概述

  28. 28

    挑战:在二叉搜索树中查找最小值

  29. 29

    解决方案:在二叉搜索树中查找最小值

  30. 30

    挑战:在二叉搜索树中找到第 k 大的值

  31. 31

    解决方案:在二叉搜索树中查找第 k 大的值

  32. 32

    挑战:在二叉搜索树中查找指定节点的祖先节点

  33. 33

    解决方案:在二叉搜索树中查找指定节点的祖先

  34. 34

    挑战:求二叉搜索树的高度

  35. 35

    解决方案:求二叉搜索树的高度

  36. 36

    挑战:查找与根节点距离为 k 的节点

  37. 37

    解决方案:查找距离根节点为 k 的节点

  38. 38

    树结构测验:检验你对树的理解

Trie
  1. 1

    什么是Trie?

  2. 2

    Trie 的结构

  3. 3

    在字典树中插入

  4. 4

    在字典树中搜索

  5. 5

    Trie 中的删除操作

  6. 6

    挑战:字典树中的总单词数

  7. 7

    解决方案:字典树中的总单词数

  8. 8

    挑战:在字典树中查找所有存储的单词

  9. 9

    解决方案:在字典树中查找所有存储的单词

  10. 10

    挑战:使用字典树对数组进行排序

  11. 11

    解决方案:使用字典树进行数组排序

  12. 12

    挑战:使用字典树(Trie)进行单词构造

  13. 13

    解决方案:使用字典树(Trie)进行单词构造

  14. 14

    Trie测验:检验你对Trie的理解

堆简介
  1. 1

    堆的定义与性质

  2. 2

    最大堆:简介

  3. 3

    最大堆(实现)

  4. 4

    最小堆:简介

  5. 5

    最小堆(实现)

  6. 6

    挑战:将最大堆转换为最小堆

  7. 7

    解决方案:将最大堆转换为最小堆

  8. 8

    挑战:在数组中找到最小的 k 个元素

  9. 9

    解决方案:在数组中找到最小的 k 个元素

  10. 10

    挑战:在数组中找到最大的 K 个元素

  11. 11

    解决方案:在数组中找到最大的 K 个元素

  12. 12

    堆测验:检验你对堆的理解

哈希简介
  1. 1

    哈希与哈希表

  2. 2

    哈希函数

  3. 3

    哈希表中的冲突

  4. 4

    从零开始构建哈希表

  5. 5

    哈希表的添加/删除与查找(实现)

  6. 6

    哈希表快速概览

  7. 7

    树与哈希表

  8. 8

    挑战:一个数组作为另一个数组的子集

  9. 9

    解决方案:一个数组作为另一个数组的子集

  10. 10

    挑战:检查数组是否互不相交

  11. 11

    解决方案:检查数组是否互不相交

  12. 12

    挑战:在数组中查找对称的数对

  13. 13

    解决方案:在数组中查找对称对

  14. 14

    挑战:追踪旅程的完整路径

  15. 15

    解决方案:追踪旅程的完整路径

  16. 16

    挑战:在数组中找到两对数,使得 a + b = c + d

  17. 17

    解决方案:在数组中找出两对数,使得 a + b = c + d

  18. 18

    挑战:和为 0 的子数组

  19. 19

    解决方案:和为 0 的子数组

  20. 20

    挑战:使用哈希表进行单词构造

  21. 21

    解决方案:使用哈希表进行单词构造

  22. 22

    挑战:寻找两个相加等于 k 的数——哈希法

  23. 23

    解决方案:寻找两个相加等于 k 的数——哈希法

  24. 24

    挑战:数组中的第一个非重复整数——哈希

  25. 25

    解决方案:数组中第一个不重复的整数——哈希法

  26. 26

    挑战:链表环——哈希法

  27. 27

    解决方案:链表环检测——哈希表法

  28. 28

    挑战:通过哈希表从链表中删除重复项

  29. 29

    解决方案:从链表中删除重复项——哈希表

  30. 30

    挑战:链表的并集与交集 — 哈希表

  31. 31

    解决方案:链表的并集与交集 —— 哈希表

  32. 32

    哈希测验:检验你对哈希的理解

数据结构概述
  1. 1

    线性与非线性数据结构概述

  2. 2

    结论

Certificate of Completion

Showcase your accomplishment by sharing your certificate of completion.

Course Author:Anonymous User

Reviews

Read reviews from students who have taken this course and share your own experience.

Reviews & Comments (0)