Lua 数据结构与算法
Lua 只有一种数据结构:表。所以这条路径上的每种结构都由表构成:用数组部分做栈,用两个索引做队列,用互相指向的表做树。在这条路径中,你会用 Lua 亲手实现每一种结构,再用它们做排序、递归和图搜索,最后完成自动评分的面试题。全部免费,在浏览器中学习,大多数课程都有证书。
377 节课284 个挑战702 道测验题
- 适合初学者
AI 辅助编程帮助
动手实践的互动课程
每节课都有语音讲解
检验所学的测验
终点有一张路径证书,沿途还有 23 张
Lua 数据结构与算法,循序渐进
每一步都由 Coddy 现有的几门课程组成,每个“开始”按钮都会以 Lua 打开课程。还没有 Lua 版本的三门课程列在步骤之后。
- 1
- 2
- 3
- 4
- 5
- 6
在实践中学习
编写真实代码、查询数据库、搭建网站、掌握 AI 提示词。我们的互动课程涵盖现代开发者需要的每一项技能。
打造你的连胜
坚持下去,看着自己不断进步!记录每天的编程习惯,用冻结天数保护连胜,每天打卡都能赢取奖励。
12 天连胜
明天再来,保持你的连胜!
January 2026
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
21
22
23
24
25
26
27
28
29
30
加倍或归零
第 5 天,共 7 天
连胜冻结
2 left
随时随地写代码
随时随地继续你的编程学习旅程!无需配置,无需下载:打开就能写代码。支持 iOS、Android 和 Web,评分高达 4.9 星。
你并不孤单
在全球排行榜上一较高下,邀请好友赢取奖励,为彼此的成就喝彩。和好友一起编程更有趣!
多种学习方式
阅读、收听、自我测验、问 AI,或者查阅学过的任何内容。每节课都配合你的节奏。
变量是一个有名字的容器,用来存储值,方便你在程序后面引用。
在 Python 中,创建变量只需写下名字、一个等号,再写上要存储的值。
值可以随时间变化。给这个名字重新赋值,它就会指向新的值。
获得证书
每完成一门课程都能获得证书。把证书添加到你的 LinkedIn 个人资料和简历中,向雇主展示你的编程能力。
为什么在 Coddy 上用 Lua 学数据结构与算法
- 一种结构,构成所有结构。Lua 的表同时包含数组部分和哈希部分,除此之外没有任何内置结构:没有列表类型、集合、队列或堆。在 Lua 中,每种结构都是互相指向的表,这能让你最清楚地看到链表或树的本质。
- 适用于 Roblox、游戏和插件。Lua 驱动着 Roblox(以 Luau 的形式)、游戏脚本、Neovim 配置和 Redis 脚本,而游戏代码就是数据结构代码:背包是哈希表,回合顺序是队列,寻路是图搜索。用 Lua 学数据结构,就是用你已经在写脚本的语言来学。
- 几乎整条路径都用 Lua。每种数据结构、排序、图算法、递归挑战和面试题包都用 Lua 讲授。有三门课用其他语言讲授,列在步骤之后,各附链接:动态规划和 Python 面试系列用 Python,位运算用 C++。留在 Lua 中的一切都由表构成,从第一个栈到最后一道面试题。
- 像面试一样评分。每节课都以一道 Lua 挑战结束,由测试用例检查。没通过时,Bugsy 会阅读你的代码,引导你找到修复方法,而不是直接给出答案。大多数课程提供免费证书,每张证书都可以通过专属 URL 验证。
关于用 Lua 学数据结构与算法的常见问题
Lua 适合学习数据结构与算法吗?
nil 而不是报错,而长度运算符 #t 只在没有 nil 空洞的序列上才可靠。很少有面试用 Lua 进行,所以如果你的目标是面试,面试题包也提供你面试时会用的语言版本。如何用 Lua 的表实现栈和队列?
table.insert(t, x) 入栈,table.remove(t) 出栈。队列需要更小心,因为 table.remove(t, 1) 会把剩下的每个元素都往前移一位,所以每次出队都是 O(n)。改为维护两个索引 first 和 last:在 last + 1 处添加,从 first 处读取,把那个位置设为 nil 再前移,出队就变成了常数时间。第一步会让你把两者都实现一遍。为什么 Lua 的 #t 有时会给出错误的长度?
#t 有时会给出错误的长度?# 返回的是表的一个边界:某个索引 n,满足 t[n] 不是 nil 而 t[n + 1] 是。一个正常的序列只有一个边界,也就是它的长度;如果在中间放一个 nil,就可能有多个边界,而 # 可能返回其中任何一个。所以永远不要在用 # 计算长度的数组中存放 nil;在有空洞的结构中,比如用两个索引实现的队列,要自己记录大小。数据结构对 Roblox 脚本开发重要吗?
# 运算符,所以你在这里实现的东西可以直接用过去。这条路径中哪些课程不是用 Lua 讲授的?
&、|、<< 和 >>,而异或和按位取反都写作 ~。开始这条路径前需要先会 Lua 吗?
至少要了解表、函数、循环和局部变量;如果你希望结构像对象一样使用,元表会有帮助。如果这些对你来说还很陌生,可以先学 Coddy 免费的 Lua 课程,学完后再从这条路径继续。
完成数据结构与算法路径能获得证书吗?
能。完成每一步,你就能获得整条数据结构与算法路径的一张免费证书。证书会列出你沿途完成的每门课程,并链接到每门课程各自的证书,任何人都能核实上面列出的每项技能。你可以把它添加到 LinkedIn 个人资料。这是 Coddy 颁发的结业证书,不是经过认证的学历资格。