编程基础篇 · AI 背后的数据结构

汇总 · 八种结构一张决策表

数组/栈/队列/哈希表/缓存/树/图/向量各自的强项弱项与 AI 里的真身;点选场景,看该用哪种收纳方式

本页解决的问题

先给结论

「汇总 · 八种结构一张决策表」要解决的关键问题是什么?

数组/栈/队列/哈希表/缓存/树/图/向量各自的强项弱项与 AI 里的真身;点选场景,看该用哪种收纳方式

判断标准

让这个结论先证明自己值得留下。 把这一页当成决策工具,而不是需要背下来的定义。把概念连到一个真实任务、一个可观察结果,以及一个能改变你判断的失败上。

下一步

写下一个问题:试完这个方法后,你能用什么证据回答它?

常见误区

结论听起来很完整,却没有检查最关键的假设。

一 · 八种收纳方式,一张表

每行一种结构:一句话口诀、最亮的强项、最疼的弱项、它在 AI 世界的真身、哪一课讲的。留意「弱项」那一列——选错结构的代价,全写在那里。

结构一句话口诀强项弱项AI 里的真身出处
📚数组 排排坐,按号找 按位置直达、末尾追加快 中间插入 / 删除要全体挪位 message list:你和 AI 的每句对话都躺在里面 第 2 课
🥞 后进先出 撤销、回溯、原路返回 只能动最上面那一个 Cmd+Z、函数调用、Agent 的子任务;递归失控就「爆栈」 第 3 课
🚶队列 先进先出 排队公平、削峰兜底 不能插队,中间的取不到 任务队列、消息队列:Agent 的活是排着队干的 第 4 课
🗃哈希表 算出位置,一步直达 查找 / 去重快到不讲理 没有顺序,还要多花内存 Set / 字典、session 查找、缓存的键、语料去重 第 5 课
💾缓存 算过的别再算 省时间也省钱 何时作废最难拿捏 KV Cache、语义缓存、浏览器缓存、CDN——账单的隐形折扣 第 6 课
🌳变体:Trie 前缀树 层层分叉,按层级找 天然表达嵌套与从属 只认父子关系,平级互连表达不了 文件目录、JSON、AST;Trie 是 Tokenizer 切词的秘密 第 7 / 9 课
🕸 万物皆可连 表达任意多对多关系 容易绕圈,遍历成本高 知识图谱、社交网络、多 Agent 协作的 DAG 工作流 第 8 课
🧭向量 语义变坐标,相似即邻近 按「像不像」找东西 结果是近似的,还得配专门索引 Embedding + RAG 检索:找最近的邻居;HNSW 让亿级瞬答 第 10 课

💡 手机上表格可以左右滑动查看

二 · 场景选型器:看到场景,报出结构

背表没用,会选才算会。下面 8 个真实场景,先在心里想好答案,再点卡片对答案。全部点完有彩蛋。

已对答案 0 / 8 个场景

🎉 八个场景全部通关!你已经拥有了这一章最想给你的东西——看到场景就能报出收纳方式。下次 AI 交付代码,你不再是只会点「运行」的旁观者,而是能问出「这里为什么用数组挨个找」的验收人。
三 · 快问快答:给 AI 代码把关的直觉

6 道二选一,每道都来自前面十课的关键判断。点选即时判定,留意解析里的「为什么」——那才是验收时要说出口的话。

收官 · 一张决策心法
以后遇到任何数据场景,只问两个问题。第一问「怎么找」:按位置找 → 数组;按 key 找 → 哈希表;按层级找 → 树;按关系找 → 图;按相似找 → 向量。第二问「怎么进出」:先进先出 → 队列;后进先出 → 栈。再加一条横切的省钱心法:算过的别再算 → 缓存。两问一心法,就是整章十课的全部骨架。

「一 · 八种收纳方式,一张表」为什么要看操作

「每行一种结构:一句话口诀、最亮的强项、最疼的弱项、它在 AI 世界的真身、哪一课讲的。」把结构落到了一个具体动作。这里真正要比较的不是名词谁更高级,而是数据如何被放置,以及最常发生的操作需要走多远。

读懂结构,要同时看访问方式和变化方式

「背表没用,会选才算会。下面 8 个真实场景, 先在心里想好答案,再点卡片对答案 。全部点完有彩蛋」揭示了一个容易被忽略的取舍:按位置读取、按键查找、从两端进出、插入新元素和遍历关系,适合的组织方式并不相同。一个结构在某个操作上很快,不代表它在所有操作上都快。

  • 数据结构 = 收纳方式 :从第一课的「找钥匙」到今天,所有结构都是这一个隐喻的变体
  • 先问「怎么找」 :按位置→数组;按 key→哈希;按层级→树;按关系→图;按相似→向量
  • 再问「怎么进出」 :先进先出→队列;后进先出→栈

把规模和更新频率一起算进去

实践时可以把「6 道二选一,每道都来自前面十课的关键判断。点选即时判定, 留意 解析里的「为什么」——那才是验收时要说出口的话」当作边界提醒:先写下数据量、最常用的操作和允许的延迟,再看 AI 给出的结构是否真的匹配。

从「一 · 八种收纳方式,一张表」走到「二 · 场景选型器:看到场景,报出结构」

「一 · 八种收纳方式,一张表」先把问题落在「每行一种结构:一句话口诀、最亮的强项、最疼的弱项、它在 AI 世界的真身、哪一课讲的。 留意 「弱项」那一列——选错结构的代价,全写在那里」上;到了「二 · 场景选型器:看到场景,报出结构」,讨论继续推进到「背表没用,会选才算会。下面 8 个真实场景, 先在心里想好答案,再点卡片对答案 。全部点完有彩蛋」。两段连起来,重点就不只是记住一个结论,而是看清它成立所依赖的条件。

把这条判断带到下一个场景

遇到一个新的数据结构时,不要从定义开始背。先写出最频繁的操作,再估计数据量和更新方式,最后检查结构是否让这三个条件同时成立。

  • 「一 · 八种收纳方式,一张表」:每行一种结构:一句话口诀、最亮的强项、最疼的弱项、它在 AI 世界的真身、哪一课讲的。 留意 「弱项」那一列——选错结构的代价,全写在那里
  • 「二 · 场景选型器:看到场景,报出结构」:背表没用,会选才算会。下面 8 个真实场景, 先在心里想好答案,再点卡片对答案 。全部点完有彩蛋
  • 「最后的要点」:你的角色是验收 :不用手写任何一种结构,但要能在 AI 的代码里认出它们、问出那句「为什么」

最后的「最后的要点」把讨论落到「你的角色是验收 :不用手写任何一种结构,但要能在 AI 的代码里认出它们、问出那句「为什么」」。回看这条线索时,最值得保留的是:当输入、规模或风险改变,哪些判断需要重新做一遍。

✅ 这一章想和你带走的

  • 数据结构 = 收纳方式:从第一课的「找钥匙」到今天,所有结构都是这一个隐喻的变体
  • 先问「怎么找」:按位置→数组;按 key→哈希;按层级→树;按关系→图;按相似→向量
  • 再问「怎么进出」:先进先出→队列;后进先出→栈
  • 空间换时间是常青招:哈希表多备桶、缓存多存结果,换来的都是速度和账单折扣
  • 你的角色是验收:不用手写任何一种结构,但要能在 AI 的代码里认出它们、问出那句「为什么」
标记为已学完 阅读进度会自动记录
← 上一篇下一篇 →

继续阅读

同一条线上的下一篇。

文章讨论

读到这里,留下一个判断。

把刚想明白的地方、还没想通的问题,留给下一位一起学习的人。

正在讨论 汇总 · 八种结构一张决策表 AI 背后的数据结构
3条讨论文章讨论 · 与共学社区同步
在共学社区查看
AM
Asha Morgan内容编辑
观点实践记录

我把这篇文章里的一个判断改写成了今天可以验证的小实验。比记住结论更有用的是,知道下一步要观察什么。

文章讨论7 有帮助
LH
Lin Harper独立开发者
观点观点

读完以后我先回头找它成立的条件,而不是直接把方法搬进项目。这个顺序让后面的取舍清楚很多。

文章讨论5 有帮助
KM
Kiki Moore产品运营
问题问题

如果把这个判断放到真实工作里,最先需要补的约束是什么?我想知道从阅读到第一次实践之间,哪一步最值得先做。

文章讨论4 有帮助