Berkeley CS61B

数据结构

CS61B 以 Java 为主要语言,覆盖抽象数据类型、树、哈希、图、排序、算法分析和中大型编程项目。

Learning Path

从抽象数据类型到工程项目。

建议把每个数据结构都和复杂度、接口设计和项目实践一起理解。

抽象数据类型

理解列表、集合、映射、栈和队列背后的接口设计。

树与图

用树、堆、哈希表和图算法建立数据组织能力。

项目实践

通过 Java 项目训练调试、测试、性能分析和代码组织。

课程档案 / 03

从“能写程序”迈向“能组织大型程序”。

CS61B 将数据结构、算法分析和软件工程实践结合起来。课程不仅要求实现列表、树、哈希表和图,也强调接口设计、测试、版本管理与项目结构。

先修准备

需要扎实的基础编程能力

建议先完成 CS61A 或同等课程,并熟悉递归、对象与基本调试流程。

  • 掌握函数、类和递归
  • 能够阅读多文件项目
  • 提前熟悉 Java 基础语法
学习重点

接口、实现与性能权衡

同一种抽象可以有不同实现。学习时应持续比较运行时间、空间开销、代码复杂度和适用场景。

  • 为每个结构写边界测试
  • 用渐进复杂度解释性能
  • 项目阶段保持小步提交

内容地图

阶段 01线性结构与抽象

链表、数组、集合、映射、泛型和接口。

阶段 02树、哈希与排序

二叉搜索树、平衡树、堆、哈希表及经典排序算法。

阶段 03图与大型项目

图遍历、最短路径、最小生成树,以及综合工程项目。

完成标准

能够为实际问题选择合适的数据结构并说明原因。

学习者应能分析常见操作的复杂度,独立实现核心结构,并在中型 Java 项目中进行测试、调试和性能改进。