资讯动态

数据结构与算法课程PPT整理攻略:从截图到高效复习笔记

发布时间:2026/10/14 22:20:58 来源:尧图企业网站定制
简介青岛大学王卓教授的《数据结构与算法》课程PPT截图合集以PDF格式呈现适合正在学习该课程、准备期末复习或考研计算机基础的学生使用。资源目录依次展开绪论、数据结构研究内容、数据元素和数据项、数据结构两个层次、逻辑结构、数据类型和抽象数据类型、算法和算法分析、算法时间效率的度量以及线性表的定义与特点、案例引入、类型定义、顺序表示和实现、链表概念、链式表示和实现等章节知识脉络清晰。其中线性表部分梳理了顺序存储与链式存储两种实现方式有助于理解不同存储结构在插入、删除、查找等操作上的性能差异算法分析部分则涉及大O时间复杂度的基本度量思路。整包仅有一个PDF文件压缩包大小约102.64MB便于离线查看、打印和按目录跳转目前已有4537人学习下载。这些PPT截图保留了王卓老师课堂幻灯片的原始版式与重点标注可帮助读者快速回顾数据组织方式与算法复杂度分析方法也可作为教学备课或自学补充材料。1. 数据结构与算法课程PPT为什么这套截图值得保留如果你是正在准备期末、考研或面试刷题的人大概都有过这样的经历算法书太厚视频课太长想快速回忆某个知识点的时候翻半天找不到重点。我手里这套从某高校公开数据结构课程里整理出来的完整PPT截图覆盖了线性表、栈与队列、树与图、查找及全部常用排序算法等核心章节每一帧都保留了授课时的推导批注和典型例题。它并不是那种只放概念定义的课件而是把每一段代码、每一次复杂度分析都讲到了考试和面试真正会考的位置。适合三类人一是期末复习想快速过一遍框架的人二是准备考研专业课需要反复刷知识点的考生三是转码自学时想用一套完整讲义把逻辑串起来的人。下面把内容结构、整理方法和踩坑点逐一拆开讲。2. 从线性表到排序算法这套PPT的内容结构与讲解逻辑拿到这套截图首先建议不要急着从头翻到尾。它虽然是按章节组织的但每一章的知识密度差异很大需要先看清整棵知识树的分布再决定时间花在哪里。2.1 线性表与栈队列存储结构对比和经典应用题模板线性表部分占了前五分之一的篇幅重点放在顺序表和链表的对比上。PPT里反复出现的是一张对比表顺序表随机访问是O(1)插入删除要移动元素、平均O(n)链表插入删除只需改指针、O(1)但查找第k个元素要O(n)。这张表建议直接抄进自己的笔记里因为考试和面试的“存储结构选型题”几乎都从这张表衍生。栈和队列部分PPT重点不是讲定义而是讲应用模板。例如括号匹配、表达式求值、递归转非递归这三类经典问题每一类都配了一个完整的流程推导。以表达式求值为例我一般会重点抄下PPT里那张“操作符优先级表”因为这是整个算法的手工推导依据。PPT里推进的步骤是先建立两个栈操作数栈和运算符栈然后从左到右扫描表达式遇到数字压数栈遇到运算符则与栈顶比较优先级若当前优先级低则弹出栈顶运算直到处理完整个表达式。请注意这里的两个判断条件一个是运算符栈是否为空另一个是“遇到右括号则一直弹到左括号”这两个条件写错的人非常之多。这一章的截图里建议特别留意链表插入和删除的指针操作图。因为PPT是用动画逐步展示指针变化的截图后虽然动效没了但每一帧都保留了“断链前先接链”的标注。我自己复盘时发现只要把这几帧按顺序重看一遍写代码时就不容易漏掉“保存后继节点”这一步。如果只看文字不看图很容易在实现时把p-next先置空导致链表断裂。2.2 树与二叉树遍历序列推导与递归转迭代的关键树这一章是整套PPT里篇幅最重的一部分大概占了总页数的四分之一。核心内容集中在二叉树的性质、三种遍历、以及由遍历序列推导二叉树结构。PPT里的推导题非常典型已知前序和中序序列要求还原二叉树。它给出的步骤是——首先前序序列的第一个节点一定是根节点其次在中序序列中找到该根节点的位置左边是左子树、右边是右子树然后递归重复这个过程。我之前跟着这套PPT手动还原了三次发现一个容易被忽略的小技巧每次切分序列时要在纸上把左子树和右子树的边界标清楚而不是凭眼睛看。比如前序是A B D E C F中序是D B E A C F第一步A是根中序里A的左边是D B E右边是C F于是左子树的前序区间是B D E、右子树的前序区间是C F。这时候要注意左子树的“根”是B而不是D很多人一眼扫过去以为D是左子树的根直接翻车。为了避免这种错误我会把每一个递归层级的中序区间用方括号标出来再去找对应的前序元素。这套PPT在推导时每一步都有红色批注正是这些批注让边界错误变得可追溯。关于树的第二种写法——递归转迭代尤其是中序遍历的非递归实现PPT给了一个非常有用的模板用栈模拟递归栈先一路向左压栈再逐个弹出访问之后转向右子树。这段伪代码建议原样抄下来并标注清楚“访问时机”前序是压栈前访问中序是弹出时访问后序则要加一个“上一轮访问的节点”判断是否从右子树返回。这个时机问题笔试和面试都爱考死记硬背容易混必须对着截图里的代码流程走一遍。2.3 图与查找排序邻接矩阵与邻接表的选型、拓扑排序的手工推导图这一章PPT把邻接矩阵和邻接表的对比放在了开头矩阵适合稠密图、判断两点是否相邻是O(1)但存储空间固定是V²邻接表适合稀疏图、遍历邻接点快但判断相邻需要O(degree)。这个选型结论是高频考点建议用一句话记成笔记“稠密用矩阵稀疏用表频繁查边用矩阵频繁遍历用表。”关于最短路径PPT对比了Dijkstra和Floyd的适用场景Dijkstra是单源最短路径不能处理负权边Floyd是多源最短路径可以处理负权边但不能有负环。截图里有两张手工推导表一张是Dijkstra的dist数组逐步更新过程另一张是Floyd的dist中间矩阵。如果你能把这两张表用Excel复现一遍对“松弛操作”的理解会比只看图深得多。我一般会建议花二十分钟手工走一遍Dijkstra的完整流程重点观察“每次选最小dist时是否已经确定该节点”这一步。这个算法的正确性依赖“当前未被访问的最小dist节点不可能再被其他路径优化”这一性质PPT上用两行字点破了但很多人看视频只顾着记步骤忽略了为什么导致考试换种图就不会了。排序与查找章节放在最后PPT对八种排序做了分组插入类直接插入、希尔、交换类冒泡、快排、选择类简单选择、堆排、归并类。每一组都给了移动次数和比较次数的对比表。关于稳定性PPT的结论是直接插入、冒泡、归并稳定希尔、快排、堆排不稳定。这个结论我建议不要只背而是要知道不稳定发生在哪一步快排的不稳定发生在partition交换时把相等元素换到另一边堆排的不稳定发生在调整堆时父子交换破坏了原有相对顺序。理解到这一层面试问“为什么堆排不稳定”才能答出来。3. 把PPT截图变成自己的复习资产整理与输出三件套截图资源拿到手最忌讳的是“收藏即完成”。如果只是把几百张图存进网盘那和没下载没有区别。这一章讲我怎么把这套截图转化成真正能用的复习材料每一步都有对应做法。3.1 按“主题-子主题-例题”三层结构重新组织截图第一步是把照片按主题重新命名。原始截图的文件名可能是Page_001.jpg这种无意义序号我会先建一个章节文件夹再在每个文件夹里建立“概念定义”“代码模板”“易错点”“典型例题”四个子文件夹。比如树这一章把“二叉树性质.png”放进概念定义把“递归转迭代模板.png”放进代码模板把“由遍历序列还原二叉树.png”放进典型例题。这个整理过程本身就是一次主动回忆比直接看第二遍有效得多。实际操作时我一般会用文件管理器配合一个小脚本快速完成分类。下面是一个用python批量重命名截图的示例按“章节-子主题-序号.png”的格式整理import os import shutil source_dir ./data_structure_slides target_root ./my_notes chapter_map { 01: linear_list, # 线性表 02: stack_queue, # 栈与队列 03: tree, # 树 04: graph, # 图 05: sort_search # 排序与查找 } for filename in os.listdir(source_dir): if not filename.lower().endswith(.png): continue prefix filename.split(_)[0] # 01_xxx.png - 01 chapter_dir chapter_map.get(prefix, misc) target_dir os.path.join(target_root, chapter_dir) os.makedirs(target_dir, exist_okTrue) shutil.copy2(os.path.join(source_dir, filename), os.path.join(target_dir, filename)) print(f{filename} - {chapter_dir})这段脚本做的事情是读取源目录下所有PNG图片按文件名前缀的数字映射到对应章节目录复制而非移动保证原始文件不丢。参数说明source_dir是截图存放目录target_root是整理后的笔记根目录chapter_map是章节映射字典你可以按自己的截图命名方式修改。我一般在复制后还会再做一轮手筛选因为有些跨章节的知识点比如树与递归的关系会被分到misc目录里单独处理。3.2 用Markdown搭建带图笔记截图与文字注释并排整理好文件之后我不会直接点开图片一张张看而是用Markdown写一份带图索引笔记。这样做的好处是复习时不用打开几十个图片文件只要看一个笔记文件需要细节时再点击图片链接跳转即可。对每一章的笔记我遵循“一图一带”的格式每个知识模块配一张关键截图紧接着写这段PPT里最重要的三句话。下面是一段我用Obsidian写的笔记示意用了标准Markdown语法## 二叉树遍历 ### 三种遍历的访问时机 - 前序根 - 左 - 右访问根在递归左子树之前 - 中序左 - 根 - 右访问根在左右子树之间 - 后序左 - 右 - 根访问根在左右子树之后 ![前序遍历推导](../my_notes/tree/traversal_preorder.png) 注意中序序列中根的位置把左右子树区间完全分割这是还原二叉树的关键依据。这段笔记的价值在于把图片和文字锚点放在一起避免“看图不知要点”的被动浏览。我在实际使用中发现Markdown里的引用块特别适合记录“注意”级的内容比如上例中“中序分割左右子树”这句话复习时扫一眼就能抓住重点。如果你的工具支持双链笔记还可以给“递归转迭代”“栈的深度”这类跨越章节的概念建立链接方便后来跳转复习。3.3 用主动回忆法安排复习节奏而不是反复看截图整理完笔记后真正的学习动作发生在脱离截图的时候。我的习惯是每天抽一小时先把当天要复习的章节笔记从头看一遍然后合上屏幕拿出一张白纸默写该章节的三个关键内容——算法模板、复杂度结论、易错点。如果默写不出来再回去看对应的截图。这个方法比反复刷图有效得多因为每一次回忆失败都会给大脑一个“这个知识点还没巩固”的信号。具体安排上我会用一张表格来规划复习节奏基本原则是当天学过的内容当天复习一次之后第2天、第7天、第21天各复习一次。表格不复杂但很有用内容章节学习日第2天复查第7天复查第21天复查线性表/栈队列第1天已复查已复查已复查树与二叉树第3天已复查已复查待复查图第5天已复查待复查待复查查找与排序第7天待复查待复查待复查这张表的背后逻辑是遗忘曲线如果不做间隔复习一星期后再看截图基本等于重新学。我一般会把待复查的状态标为高亮优先安排这些章节的默写练习。这里有个小技巧复习某个章节前不要先翻笔记而要先默写。只有在意识里“主动搜索”失败之后再去对照笔记和截图这个补漏点才会被真正记住。如果一开始就打开截图就会陷入“看着都会、合上全忘”的假性学习。4. 避坑与常见问题截图资源复盘时踩过的四个坑这套PPT截图我用过三轮前两轮都走了弯路。下面四条是反复遇到的高频问题每条按现象、原因、解决三步展开希望你能绕开。4.1 截图模糊导致算法推导看不清楚越看越烦躁现象某些PPT页面上有密集的推导文字比如Dijkstra手动求解表、快排的partition过程放大后依然模糊关键数字根本看不清。原因PPT在屏幕播放时字体较小直接截图的分辨率不够放大到阅读尺寸时就糊了。尤其是红笔批注和浅灰色辅助线在低分辨率截图里几乎消失。解决我的做法是不要“硬看”模糊区域而是先用这一页的标题和公式反推内容再找其他来源补齐。比如Dijkstra推导表思路本质上是反复执行“选最小dist、更新邻居”两步我在纸上重画一张空白表按流程自己填一遍反而比看截图更记得住。同时建议把这类关键页面用“网页长图”或“OCR识别”的方式二次处理如果OCR能识别出文字优先以文字为准不要把模糊图片当唯一依据。4.2 章节页码不连续发现中间少了关键内容现象整理截图时发现“图的遍历”之后直接跳到了“最短路径”中间缺失“最小生成树”的大部分内容或者某些章节只有前半部分。原因截图来源是课堂录制文件可能存在录制中断、页面跳帧的情况加上手动截屏时可能漏帧最终少了几十页。解决先不要急着补内容而是在笔记里做好缺失标记用“【缺失】最小生成树Prim算法例题”这样的占位符记录下来。然后补暂时找不到的内容时优先找同类课程的讲义或算法教材中对应的章节。我通常会从三个方面补一是权威教材里的对应片段二是公开课件里的相同主题三是自己按上课讲过的算法模板手工推导一遍。补完之后在笔记的缺失标记处写上“已补2024-xx-xx来源教材第三版第214页”方便日后追溯。4.3 只看截图不写代码导致考试写不出来现象PPT里的代码模板看得滚瓜烂熟但一到白纸上默写“中序遍历非递归”就卡壳或者写出的代码逻辑能看懂但边界条件不对。原因看截图像看“别人写好的代码”大脑会把它当作已经理解的内容不会触发写代码时的边界检查和语法纠错。还有个原因是PPT展示的代码往往省略头文件、typedef等上下文只看片段永远无法形成完整可运行的代码。解决从第一轮复习开始强制自己把PPT中的关键算法在IDE里敲一遍并跑通。不是抄一遍而是看着核心逻辑自己写。比如快排的partition函数我不看PPT只记住“选主元-左右扫描-交换”这个流程写出来之后再对着PPT截图检查边界条件。运行测试时用5个元素的数组、10个元素的数组、含重复元素的数组依次验一遍重点观察主元位置是否正确。从那以后我每次复习到算法章节都强制自己在白纸上先默写代码、再对照截图这个习惯帮我在考试时少踩了一半的坑。4.4 按照PPT顺序死记硬背导致知识碎片化现象每一章学完都觉得懂了但合上PPT之后遇到一道综合题比如“用栈实现图的深度优先遍历”就完全不知道该调用哪些知识。原因PPT是按线性顺序组织的这适合“新知识输入”阶段不适合“综合应用”阶段。如果复习也按线性顺序就会把知识点当孤立点无法应对需要跨章节联动的题目。解决第二轮复习时不再按章翻图而是按“数据结构-算法技巧”的交叉索引来重组。例如栈这一章不只看栈本身的定义还要把“括号匹配”“函数调用栈”“DFS非递归”三类使用场景列在一起。具体做法是在笔记里加一个“跨章节关联表”把同一个数据结构在不同章节的应用位置记下来。比如“链表线性表章节的插入删除、哈希表的链地址法、图的邻接表表示”每次复习链表都顺带看这三个地方知识就会被粘合成网络而不是散点。5. 把一份PPT用出网课效果默写式自测与查漏的进阶技巧截图资源的极限取决于你怎么使用它。如果只是看它顶多是一份讲义如果你用下面这套方法可以把静态截图变成动态复习引擎甚至能查出现在还不会的知识薄弱点。第一个进阶技巧是“反向写讲义”。所谓反向就是不看章节目录凭回忆把每一章的三级标题写出来再在每个标题下写两行关键词。例如树那一章你能写出“二叉树性质 - 四种遍历 - 还原推导 - 递归转迭代 - 线索二叉树 - 哈夫曼树”说明知识框架已经建立如果一个标题写不出来说明那一块还没有进入长期记忆。我一般用时间盒方式完成这个任务一张A4纸十五分钟不看任何资料默写完一整章的结构。写完后再对照PPT截图检查漏掉的那个子主题就是下一轮复习的第一优先。第二个技巧是“错位例题重解法”。不是把例题答案抄一遍而是把例题的初始条件稍做修改再自己解。例如PPT里有一个用中序和前序还原二叉树的例题我会把前序序列改成“A B D E C F”中序改成“B D A E F C”再重新推导一遍。这样做的价值在于它强迫你重新执行“找根、切分、递归”的每一步决策过程而不是记住上一次推导的结果。如果推导顺利说明这个算法真的理解了如果卡住就回头再看对应截图里的红色批注。第三个技巧是“口头讲给自己听”。找一个不看图的环境把某类算法的流程说出来。比如拓扑排序我练习时会说“首先统计每个节点的入度再把入度为0的节点入队列每次弹出队首节点、将其邻接节点的入度减一如果减到0就入队列直到队列为空。”如果在讲述过程中停顿了或者发现自己跳过了某一步那就是没真正学会。这个方法比默写更快暴露问题适合在碎片时间进行。最后一个习惯是我经过多次教训后坚持下来的每次完成一轮复习都把“此刻还不会的问题”写在一张专门的清单里而不是把它留在脑子里。这些问题从哪里来从默写失败、错位例题卡壳、口头讲述停顿中收集。清单每项只写一句话比如“堆排序调整堆时向上还是向下比较没想清楚”“Dijkstra中为什么已确定节点不需要再更新”。之后每次复习直接对着这份问题清单回答答不上的再回头查PPT。从那以后我每次拿到一份新的学习资料不管是不是PPT截图都会强制走一遍“整理分类、写带图笔记、默写自测、错位重解、问题清单”这五步流程。说实话这套流程比资料本身更值钱因为它让我从“看资料的人”变成了“检验学习效果的人”。希望这份PPT整理法也能帮你在数据结构和算法的复习里少走弯路把几百张截图真正变成自己的知识库。本文还有配套的精品资源点击获取

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑