数据结构与算法(B)
Note Taker: Cheng Guo
本课程是计算机基础系列中的数据结构与算法入门课,授课语言为 C 语言(作业可用 Python)。课程目标不只是掌握具体数据结构,更重要的是培养抽象思维:把现实问题抽象为已有的数据模型和算法框架。
考核方式
| 项目 | 占比 | 说明 |
|---|---|---|
| 上机作业 | 20% | 每周/每两周的编程作业 |
| 课堂测验 / 点名 | 10% | 随堂进行 |
| 期末上机测验 | 30% | 开卷,可提交自己之前写的代码;重点考察“该用哪种算法框架” |
| 期末笔试 | 40% | 闭卷,约 60–70% 为往年题 |
- 期末笔试通常 5–7 题,做对 4 道以上分数才比较好看。
- 上机考试需要手动敲代码,不能完全依赖 AI。
- 找往年题对笔试很重要。
教学内容
- 绪论:数据结构三要素、复杂度分析、大 O 表示法
- 线性表:顺序表、链表(单链、双链、循环链)
- 栈和队列:受限线性表及其应用
- 字符串:模式匹配、KMP 算法
- 树:二叉树、BST、AVL、堆、Huffman
- 图:存储、遍历、最短路径、最小生成树、拓扑排序
- 检索与排序:内排序为主,外排序不考
课程结构
Lecture Notes
Homework & Practice
Review Materials
- 每日选做题单汇总 — 按主题聚合的 OpenJudge / LeetCode 练习题索引
核心理念
数据结构 + 算法 = 程序
- 数据结构:如何把收集的数据表示给计算机。
- 算法:如何让计算机处理这些数据。
- 程序语言:如何让计算机明白我们要做什么。
函数是你自己定义、自己实现的;而数据结构是约定俗成、可复用的模块。学好数据结构,就能把共性的东西抽离出来,避免因为 int 变成 float 就重写一遍代码。
本页为课程导航页,更多笔记可直接在左侧边栏查看。