AK宝典丨《数据结构篇》,助你新学期AK满满!
这是北航士谔书院 的第 1663 篇推送
进入新学期已经近三周
在这三周里
与大家第一次见面的“数据结构”课程
有没有给大家带来“小惊喜”?
相信有不少同学被“数据结构”搞得晕头转向
今天小信就来进行一波安利——
《AK宝典:数据结构篇》火热更新中!
这次AK宝典制作小组的同学们
又会给我们带来什么优秀的攻略呢?
来和士小信一起看看吧!
(记得扫描二维码观看对应视频哦!)
数据结构篇
一、结构与联合
本期视频介绍了什么是结构体、联合体
及它们的声明、定义、嵌套等基本操作
二、链表的基础操作
本期视频介绍了链表这一数据结构的特点
介绍使用结构体建立链表的方法
讲解增减节点等基本操作
三、链表的应用
本期视频在第二节的基础上介绍了
循环链表和单链表(包括双向链表)
及它们的应用
四、索引表
本期视频介绍了什么是索引表
合理利用索引表是可以实现如同查字典一样
首先查询首字母然后查询第二个字母的查询
五、栈及其应用
本期视频介绍了栈及其基本操作
在计算机中栈是一种十分重要的数据结构
六、队及其应用
本期视频介绍了队列的基本应用
在解决许多现实问题时
队列会是一个常用的数据结构
七、深度优先搜索
本期视频介绍了深度优先搜索算法(DFS)
并结合栈讲解深搜基本方法
八、广度优先搜索
本期视频介绍了广度优先搜索算法(BFS)
同时结合队讲解广搜基本方法
并将深搜广搜进行对比
九、树的介绍
本期视频介绍了
有关树的重要概念、性质等基本信息
并介绍树的存储、遍历等基本操作
十、树的应用(1)
——二叉搜索树
本期视频将基于二叉搜索树
进行树的应用的介绍
介绍了二叉搜索树的
查询、建立、修改等内容
并分析其使用效率
十一、树的应用(2)
本期视频将基于哈夫曼树
进行树的应用的介绍
介绍什么是树的带权路径,什么是前缀码
介绍并证明哈夫曼编码的构造方法
十二、图的介绍
本期视频介绍了图的基础概念
以及存储、遍历方法
怎么样?有没有感到受益匪浅?
《AK宝典:数据结构篇》
正在B站持续更新中
大家赶快一键三连加关注
与士小信一起学起来吧!
期待我们的AK宝典制作小组
为我们带来更多优秀的攻略!
除了优秀的《AK宝典》
士小信也为大家整理了
学长们给士小信
数据结构方面的优秀建议哦
和士小信一起了解一下吧!
1
知识点总结
①C语言基础进阶:结构体,指针、内存分配,文件读写,字符串。简单的时间复杂度分析和大O表示法。
②线性数据结构:数组(一维、二维),链表(主要是单向链表),栈和队列。
③树:有一些基本概念,二叉树(重要,二叉树的前序中序后序遍历,二叉查找树),以及表达式树,Huffman 树,字典树(课上讲的少,但大作业会用到),二叉堆(在后面堆排序中可能用到)。
④查找:顺序表查找,二叉查找树,索引,B-树/B+树,散列(哈希表,大作业也可能用到)。
⑤排序:冒泡排序,选择排序,插入排序,希尔排序,堆排序,归并排序,快速排序等。
⑥图论(期末不考,只在作业里有):有向图/无向图,图的邻接表和邻接矩阵表示,图的遍历,最小生成树(Prim, Kruskal),最短路(Dijkstra),AOE/AOV网(选填),拓扑序和关键路径(选填)。
⑦其他:前缀/中缀/后缀表达式和表达式树(这部分可以单独拿来当一个小专题)等。
2
学习技巧
1.别忽视选填。选择填空题占的分值还是比较高的,所以平时作业要认真做,有一些基础概念或者比较细节的知识点可以适当记住。
2. 不要太依赖评测结果。正常的线下考试是没有评测反馈结果的(2019级因为是线上考所以规则临时调整了),因此平时在做编程题时争取一遍做对,慢一点也没关系(数据结构没有罚时)。读题的时候注意细节,写代码尽量一次写对并且要做好本地测试,不要太依赖评测结果,尤其不要“面向测试数据debug”。
3. 对于边界的判断要特别注意。例如:出栈时要判断栈非空;遍历链表时要判断指向当前节点的指针非空,有时视具体情况可能还需要判断当前节点的下一个节点非空;在有返回值的函数中如果有多种情况(有 `switch-case` 或者有比较多的 `if` 分支),要确保每一个分支都有返回值。另外这里补充一个小技巧:在写代码时可以适当利用"断言" ( `assert` ) 来约束一些容易出错的边界条件(如栈非空或指针非空,用 `assert(0)` 来标记一定不会执行到的 `else` 或 `default` 分支等)
4. Debug 很重要。(这一条,字少事大)
一定要牢记上面的几条“金玉良言”哦!
希望同学们在新的学期
能多多AK,告别WA
和士小信一起,向着更好的自己
努力向前吧!
头图丨俞逸洋
责编丨士小信 魏凌
点击阅读原文
关注AK小组!