Menu
CoddyTech
学习路径

C 语言数据结构与算法

C 只给你数组、结构体和指针,别的什么都没有,所以这条路径上的每种数据结构都要你亲手搭建:用数组实现栈,用 malloc 实现链表,用节点组成的桶实现哈希表。这就是经典的大学课程,只不过改成了动手实践,之后还有排序、递归、图和自动评分的面试题。免费,在浏览器中学习,大多数课程都有证书。

377 节课284 个挑战702 道测验题

C 语言数据结构,一步一步来

38 门课程377 节课284 个挑战702 道测验题

每一步都是 Coddy 上现有的一组课程,每个“开始”按钮都会用 C 打开它们。暂时还不是用 C 教的三门课程列在步骤之后。

  1. 1
    开始这一步开始栈、队列、二叉树、哈希表和链表,每一种都用 C 的结构体、指针和 malloc 从零实现,再用来解决问题。这五种数据结构撑起了大多数面试题,每一个字节都清清楚楚。开始
  2. 2
    开始这一步开始双向链表、堆和优先队列、字典树、图,以及自平衡的 AVL 树。在 C 中,字典树就是每个节点一个子节点指针数组,图就是一个邻接表数组,所以这一步会让指针成为你的第二天性。开始
  3. 3
    开始这一步开始冒泡、选择、插入、归并、快速、堆、计数和基数排序,用 C 编写,并在可视化工具中观察运行过程。标准库唯一的排序函数 qsort 接收一个比较函数指针;学完这一步,比较函数和它背后的排序算法你都能自己写。开始
  4. 4
    开始这一步开始用 C 完成的递归挑战。动态规划(用 Python 教)和位运算(用 C++ 教)列在步骤之后,而后者其实比听起来更接近 C:C++ 原封不动地保留了 C 的位运算符。开始专属页面
  5. 5
    开始这一步开始用 C 在第二步搭建的图上实现广度优先搜索、深度优先搜索、Dijkstra、Bellman-Ford、拓扑排序、Kruskal 和 Prim。C 没有优先队列,所以 Dijkstra 需要的正是你在第二步写的那个堆。开始
  6. 6
你将获得
学编程所需的一切

在实践中学习

编写真实代码、查询数据库、搭建网站、掌握 AI 提示词。我们的互动课程涵盖现代开发者需要的每一项技能。

playground.js
代码编辑器
1const greeting = "Hello, Coddy!"
2function sayHi(name) {
3    return greeting + " " + name
4}
5
bottombar Collapse icon
测试 #1test Case Success icon
测试 #2test Case Success icon
测试 #3test Case Failure icon
输入
"Alex"
输出
"Hello, Coddy! Alex"

打造你的连胜

坚持下去,看着自己不断进步!记录每天的编程习惯,用冻结天数保护连胜,每天打卡都能赢取奖励。

12 天连胜

明天再来,保持你的连胜!

fire Filled icon
left icon

January 2026

right icon

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

product Double Or Nothing icon

加倍或归零

第 5 天,共 7 天

fire Freeze icon

连胜冻结

2 left

随时随地写代码

随时随地继续你的编程学习旅程!无需配置,无需下载:打开就能写代码。支持 iOS、Android 和 Web,评分高达 4.9 星。

Python
7连胜
250分数
5能量
变量
journey Hex Done Base iconjourney Hex Done Shadow iconjourney Hex Done Top iconjourney Lesson Done icon
journey Path Right Done icon
journey Hex Done Base iconjourney Hex Done Shadow iconjourney Hex Done Top iconjourney Lesson Done icon
journey Path Left Done icon
journey Hex Active Base iconjourney Hex Active Shadow iconjourney Hex Active Top iconjourney Lesson Theory Challenge icon
继续
journey Path Right icon
journey Hex Locked Base iconjourney Hex Locked Shadow iconjourney Hex Locked Top iconjourney Lesson Theory Challenge icon
journey Path Left icon
journey Hex Locked Base iconjourney Hex Locked Shadow iconjourney Hex Locked Top iconjourney Lesson All icon
学习旅程
目标
排行榜
个人主页
4.9
星星星星星
评分

你并不孤单

在全球排行榜上一较高下,邀请好友赢取奖励,为彼此的成就喝彩。和好友一起编程更有趣!

挑战者联赛
挑战者联赛前 7 名晋级
leaderboard First icon1
avatar 1 icon
fire Filled icon
Alex7+ Days
2840
leaderboard Second icon2
avatar 2 icon
fire Filled icon
Jordan7+ Days
2650
leaderboard Third icon3
avatar 3 icon
fire Filled icon
Sam7+ Days
2420
4
avatar 4 icon
Casey
2180
5
avatar placeholder icon
fire Filled icon
Morgan7+ Days
1950
leaderboard Arrow Up icon晋级区leaderboard Arrow Up icon

多种学习方式

阅读、收听、自我测验、问 AI,或者查阅学过的任何内容。每节课都配合你的节奏。

变量入门
音频

变量是一个有名字的容器,用来存储值,方便你在程序后面引用。

在 Python 中,创建变量只需写下名字、一个等号,再写上要存储的值。

值可以随时间变化。给这个名字重新赋值,它就会指向新的值。

1xSarah

获得证书

每完成一门课程都能获得证书。把证书添加到你的 LinkedIn 个人资料和简历中,向雇主展示你的编程能力。

Coddy结业证书
兹证明张三已成功完成
python iconPython 基础
已验证
日期2026年1月
LinkedIn添加到 LinkedIn

为什么在 Coddy 用 C 语言学数据结构

  • 没有任何东西被隐藏。C 的标准库里没有列表、映射或队列,没有内置功能可以依靠:每个节点都是一个 struct,每条链接都是一个指针,每次分配都是一次需要你自己释放的 malloc。这样学会的数据结构,之后在任何其他语言中你都能真正理解。
  • 大学课程,改成动手实践。C 语言数据结构是很多计算机专业的核心课程。这条路径覆盖同样的内容,从栈到 AVL 树,再到各种排序和图算法,全部是你边写边运行、实时评分的代码。
  • 几乎整条路径都用 C。所有数据结构、排序、图算法、递归挑战和面试题包都用 C 教学。不是用 C 的有三门:动态规划和 Python 面试系列(用 Python),以及位运算(用 C++,它完整保留了 C 的位运算符),它们列在步骤之后。
  • 像面试一样评分。每节课都以一个由测试用例检查的 C 语言挑战结束;没通过时,Bugsy 会读你的代码,引导你找到修复方法,而不是直接给出答案。大多数课程都有免费证书,每张都有自己的验证网址。

C 语言数据结构常见问题

为什么要用 C 语言学数据结构?

因为 C 什么都不隐藏。没有内置的列表、映射或队列,每种数据结构都要你用内存块和指针来实现,而这正是数据结构的本来面目。学完之后,Java 的 HashMap 和 Python 的 dict 不过是同样的思路,只是替你做好了内存管理,你也能判断它们的开销。

用 C 语言学数据结构之前需要掌握什么?

指针、结构体、数组,以及 malloc 和 free。最重要的是指针:链表就是一串 struct node *next 字段,二叉树则是每个节点有两个这样的字段。如果你对指针还不太有把握,Coddy 的 C 语言课程会先讲清楚,而且免费。

C 语言怎么实现哈希表?

需要一个桶数组、一个把键转换成索引的哈希函数,以及处理两个键落进同一个桶的规则:通常是每个桶一条链表(链地址法),或者探测下一个空位(开放寻址)。当表中元素超过设定的负载因子时,就分配一个更大的数组,把所有元素重新插入。第一步中的哈希表课程会带你从零实现一个。

C 语言适合用来准备编程面试吗?

除了嵌入式和系统方向的岗位,很少有人用 C 参加面试,因为在面试中从零写一个哈希表会耗费大量时间,而其他语言直接就提供了。不过这些知识可以完全迁移,而且 C++ 只有一步之遥:同样的语法,再加上 STL。常见的做法是先用 C 学数据结构,再用 C++、Java 或 Python 刷面试题包,这条路径都提供。

这条路径上哪些课程不是用 C 教的?

三门:动态规划和 Python 面试系列用 Python 教,位运算用 C++ 教。它们列在步骤之后,每门都有一个链接,会用各自的语言打开。三门中位运算最容易从 C 衔接过去:C++ 原封不动地保留了 C 的 &、|、^、~、<< 和 >>。

数据结构应该用 C 还是 C++ 学?

用 C 理解数据结构,用 C++ 使用数据结构。在 C 中一切都要自己搭建,这也是很多大学用它来教这门课的原因;在 C++ 中,每种结构自己实现一次之后就可以直接用 STL,这也是算法竞赛选手用它的原因。先学 C 再转 C++,不会有任何损失。

完成数据结构与算法路径能获得证书吗?

能。完成每一步,你就能获得整条数据结构与算法路径的一张免费证书。证书会列出你沿途完成的每门课程,并链接到每门课程各自的证书,任何人都能核实上面列出的每项技能。你可以把它添加到 LinkedIn 个人资料。这是 Coddy 颁发的结业证书,不是经过认证的学历资格。

其他学习路径

同样的课程,按不同职业方向编排。进度会保留:在一条路径上完成的课程,在所有包含它的路径上都算完成。

全部学习路径
Coddy 编程语言插图

免费开始数据结构与算法路径

开始学习