本次视频讲解为试讲,部分材料来源于网络,不代表最后成书的质量。
2020版前言
本书针对计算机/软工相关专业数据结构考研所制,为灰灰考研系列复习全书,可作为数据结构考研复习时使用的复习全书。
皮皮灰先回答三个大家最关心的问题。
1.为什么要编写灰灰全书(数据结构)?
市面上现存的考研数据结构讲解大多针对统考408,与各大高校自主命题的试题往往不适配(要么缺了内容,要么多了内容)。
主要缺失的内容有以下几点:
1.缺少动态规划的讲解
2.对贪心法、蛮力法、分治法涉猎甚少
3.背包问题完全被pass掉了
对于这些缺失的内容,灰灰数据结构全书均有以各大高校真题为突破口的相关补充。
2.为什么选择灰灰全书(数据结构)?
灰灰全书最有价值的一点:皮皮灰整理了近几年100所高校(985/211/重点)的数据结构考研真题,并将其按内容依次整理至各章节的习题供各位考生学习。市面上的习题大多过于古老,00后的题?
3.如何以考研为目的学习数据结构?
首先皮皮灰表明下对这个问题的看法:
1、如果你踏踏实实按部就班正常学习数据结构,学会了考试自然没问题
2、如果你只是为了考研拿高分,数据结构一些先修课程(C语言,离散数学)不认真学习,直接死背算法概念(考研中数据结构算法是背的完的),你也同样可以取得高分。但这样以考研为目的学习的数据结构的知识是残缺的,是不利于今后更深入的学习的。
但是我们现在的首要矛盾是时间与分数的不一致性:在尽量短的时间(1个月时间)内,取得较为理想的分数,这就需要一定的技巧。
(1)关于先修课程
皮皮灰个人认为,如果你只是为了应付考研,数据结构先修课只需要理解清楚下面这几点。
1.顺序结构:单纯地从上往下执行。
2.选择结构:
如果(今天天气好),那么就去外面跑步锻炼。
如果(今天下雨了),那么就在屋子里面不出去。
3.循环结构:
程序在一定条件下,原地转圈
最初有1根筷子;
循环(每次都增加一根筷子){
如果(筷子数量小于10)筷子数量加1
如果(筷子数量大于或者等于10)退出循环
}
4.结构体与指针
现实世界中的青蛙可以抽象成一类对象,一个青蛙对象又有特有的属性(青蛙的颜色,青蛙的大小),下图表示了一个青蛙对象。
结构体可以将上述青蛙表示为
typedef struct{
String name; //数据域
int age; //数据域
struct Frog *next; //指针域
}Frog;
那么不同的青蛙之间怎么建立联系?
5.什么是函数?
以一道题为例子
你现在是一个买卖青蛙的huster。每天的青蛙价格不一样,prices[i]代表青蛙在第i天的价格,求只做一次交易(买入1只,卖出1只)能得到的最大收益(你必须先买了青蛙之后才能卖青蛙)。
函数:int maxIncome(intprices[ ])
例子:
输入: i 0 1 2 3
prices[i] 4 1 2 3
输出:2
函数名称:上述函数函数名称为maxIncome
输入参数:青蛙每天的价格数组prices
函数主体:编程需要完成的功能,计算买卖青蛙最大的收益。
返回类型与返回结果:上述函数返回一个int型的结果
(2)考纲是灵魂
无论你选择的是什么参考书,参考书仅仅只能作为一个参考,不能完全照着上面学习。
对于各个学校自主命题的专业课,考纲才是灵魂。
市面上的数据结构针大多对的是统考408,并不是各个学校自主命题的参考书。因此,有非常多的知识点是不需要掌握的,如果你把大量时间花在这个上面,那就得不偿失了。
比如某学校数据结构的考纲:
排序
(1)排序的基本概念。
(2)插入排序、冒泡排序、快速排序、堆排序、归并排序、基数排序算法的原理、复杂度。
可以得知,排序这一章没有外部排序这一小节,在复习中,就可以把这一小节跳过。
市场上的数据结构参考书也有着不少知识点的缺失,
某学校数据结构的考纲:
算法基础
(1)字符串模式匹配算法。
(2)贪心法、分治法、动态规划的基本概念。
(3)计算复杂度类别的基本概念,NP-Complete问题。
如果你死跟数据结构参考书,你就GG了,这个知识点需要从算法书上学习。去年该学校真题:
(3)掌握好复习深度
备考本门专业课考试,不应该纠结于死板的诸如:加不加*号,用不用&之类的纯语言问题,而应该把重点放在对于算法整体的理解上,放开死板的语法知识。
对于代码题,如果学校没有明确的语言要求,建议使用C++进行编写:new,cin,cout等可以节省大量的时间而且不容易出错。
对于复习深度,不同学校的专业课考试难度是不一样的,有的学校考图的算法题,但有的学校不考算法题。不同学校之间的题目难度差别也很大,这就需要考生根据自己选择的学校控制复习的深度。
那么该如何掌握好复习深度?
答案是研究历年真题,通过历年真题,可以确定考试题型、考试趋势、考试难度,以某学校真题为例:
从这两年的考题中,可以掌握一些规律:
1.算法题为2道,均为15分。
2.考察范围为图与树,目前暂时没考过顺序结构。
3.树的题目需要掌握非递归解法。
4.图算法没有给结构体,需要自己定义,考试前需要特别准备。
针对这些规律,我们可以有针对的进行准备
1.算法题复习重点为图与树,但顺序表的算法题也不能掉以轻心。
2.树的算法题需要掌握非递归解法。
3.图的结构体需要特别记忆。
最后,不管你考什么,最难不过算法导论。
(4)关于练习题的选择
后期皮皮灰会专门出一本数据结构的习题册,涵盖近几年各大985/211/重点双非的习题大全,敬请关注。
最后,皮皮灰祝愿您考上理想的大学,成为理想中的自己。
从哪里获得灰灰全书(数据结构)?
目前灰灰全书仍在整理之中,待视频更新完成时,灰灰全书将正式上架