数据结构基础
知识库简介
数据结构研究“怎样组织数据,才能让所需操作清楚、正确且成本可控”。本库不是算法面试题集:它围绕 Agent 工程中的消息历史、工具注册、任务队列、去重、优先级和依赖图,建立从 ADT、不变量与复杂度到结构组合的决策能力。
课程使用 Python 3 标准库演示。Python 语法是前置;本库关注为何选择 list、deque、dict、set、bisect、heapq 和邻接表,以及容量、可变性、确定性和失败边界。
资料与版本
动态 Python 行为于 2026-07-14 按 Python 3.14.6 官方文档核对;课程代码避免依赖 3.14 独有 API,以兼容 Python 3.11+。本机实际验证版本为 Python 3.11.9,不能据此声称所有解释器实现和版本的时间/内存特征相同。
在总路线中的位置
本库位于 AI Agent Engineer 总路线 的“工程与数学基础”知识域。学习前应具备 Python基础 中零基础先修门与函数/容器的局部能力,不要求先完成整门 Python 课程;随后把结构选择用于 API/JSON 数据、RAG、工作流和 Agent 状态代码。
本库只讲结构选择所需的最小 DFS/BFS、二分和拓扑推进,不扩展排序证明、最短路、动态规划、红黑树/B 树实现或竞赛算法。
学习目标
- 区分 ADT、具体表示与算法,为状态写前置/后置和不变量。
- 解释时间/空间复杂度、平均/最坏/摊还,并用实测验证趋势。
- 根据操作选择线性、哈希、优先级和关系结构。
- 处理可变性、浅拷贝、迭代器耗尽、顺序与确定性。
- 使用
bisect、deque、Counter、heapq和邻接表解决小型工程问题。 - 将
dict + set + graph + heap组合为可测试的依赖任务调度器。 - 识别内存容器与生产持久化、并发、幂等、恢复之间的边界。
前置知识
- 能在 Windows 11 + PowerShell 7 运行
.py与unittest。 - 会变量、
if、for、函数、异常、list/dict/set 和基本类型提示。 - 若无法闭卷写一个“过滤列表并统计频次”的函数,先回到 Python基础。
- 本库示例离线运行,无网络、第三方包或密钥。
分类与推荐学习顺序
一、基础模型
- 数据结构、抽象类型与不变量:先定义操作、所有权和始终成立的规则。
- 复杂度、资源成本与实测:比较增长趋势,并用
timeit/tracemalloc记录证据。
二、线性结构
- 顺序、链式与二分查找:理解 list 的操作取舍、链式结构前提和
bisect边界。 - 可变性、复制与迭代:避免共享状态和生成器耗尽误用。
- 栈、队列与双端队列:用 LIFO、FIFO 和有界窗口表达顺序策略。
三、索引与优先
- 哈希表、字典、集合与计数:掌握映射、成员、频次、顺序和去重/幂等边界。
- 堆与稳定优先队列:只在 ready 集合中选优先项,定义平局与防饥饿。
四、关系结构
五、工程选择
- 结构组合、容量边界与性能诊断:建立真相源、派生索引、上限和测量闭环。
六、项目与自测
- 项目:依赖任务调度器:用邻接表、入度和堆生成确定性顺序。
- 全库自测与掌握检查:闭卷题、现场任务和迁移设计。
动手实践与项目入口
配套代码位于:
数据结构基础/examples/
├── task_scheduler.py
└── test_task_scheduler.py从 vault 根目录运行:
python -B '.\Knowledge\AI Agent Engineer\docs\数据结构基础\examples\task_scheduler.py'
python -B -m unittest discover `
-s '.\Knowledge\AI Agent Engineer\docs\数据结构基础\examples' `
-p 'test_*.py' `
-v当前实现有 24 项离线测试,覆盖合法图、平局、脏输入、一次性 iterator 拒绝、环、输入不变与确定性。先自行实现,再对照成品;只运行测试不等于能解释结构选择。
掌握标准
- 能从主要操作、规模和顺序要求选择结构,而不是只说“字典快”。
- 能区分最坏、平均和摊还复杂度,并说明空间成本。
- 能画出别名/浅拷贝引用图,正确处理 iterator 一次性消费。
- 能解释
insort为何总体O(n)、heap 为何不是完整排序。 - 能区分 dict 插入顺序、排序与 set 无稳定顺序承诺。
- 能写 DFS/BFS 与 Kahn 拓扑推进,并准确解释环和 blocked。
- 能为多个结构写单一真相源、派生索引和不变量。
- 调度器 24 项测试通过,且能手算复杂度与平局规则。
- 不把内存队列、set 去重或调度顺序误称为生产可靠语义。
与其他知识库的关系
| 知识库 | 本库交界 |
|---|---|
| Python基础 | 提供语法、函数、类型、异常和测试;本库负责操作成本与结构选择。 |
| JSON | JSON 解析后常映射到 list/dict;编码、Schema 和兼容性不在本库。 |
| 向量基础、向量数据库 | 向量和专门索引另有数学、召回、持久化与分片语义。 |
| RAG | 通用容器可承载块和候选,但切分、检索、引用与评测由 RAG 路线负责。 |
| 工作流自动化、Agent 核心 | 本库提供队列/图/堆直觉;执行、授权、停止、重试与恢复在后续库。 |
| 运行监控 | 本库解释窗口和计数结构,监控系统负责指标、告警和保留策略。 |
验证记录
- 目录重组前无公开复刻材料需要冻结;原有有价值内容已按概念拆分保留。
- Python 3.11.9 下示例与 24 项
unittest已实际运行通过;另生成 500 组随机 DAG,验证每条依赖均先于后继,且同一任务集合的输入排列不改变输出。 - 12 篇课程中的 39 个 Python 代码块已完成 AST 语法解析;50 个完整路径 wikilink 均指向现有文件。
- 未在 Python 3.14、PyPy、生产任务系统或真实并发环境运行;复杂度表是模型,不是跨实现的固定性能承诺。
主要参考资料
获取日期:2026-07-14。