灰灰考研c语言讲义,灰灰全书之数据结构试讲

本次视频讲解为试讲,部分材料来源于网络,不代表最后成书的质量。

2020版前言

本书针对计算机/软工相关专业数据结构考研所制,为灰灰考研系列复习全书,可作为数据结构考研复习时使用的复习全书。

皮皮灰先回答三个大家最关心的问题。

1.为什么要编写灰灰全书(数据结构)?

市面上现存的考研数据结构讲解大多针对统考408,与各大高校自主命题的试题往往不适配(要么缺了内容,要么多了内容)。

主要缺失的内容有以下几点:

1.缺少动态规划的讲解

2.对贪心法、蛮力法、分治法涉猎甚少

3.背包问题完全被pass掉了

对于这些缺失的内容,灰灰数据结构全书均有以各大高校真题为突破口的相关补充。

2.为什么选择灰灰全书(数据结构)?

灰灰全书最有价值的一点:皮皮灰整理了近几年100所高校(985/211/重点)的数据结构考研真题,并将其按内容依次整理至各章节的习题供各位考生学习。市面上的习题大多过于古老,00后的题?

587650279e47a3fbe6696a90804f81bb.png

3.如何以考研为目的学习数据结构?

首先皮皮灰表明下对这个问题的看法:

1、如果你踏踏实实按部就班正常学习数据结构,学会了考试自然没问题

2、如果你只是为了考研拿高分,数据结构一些先修课程(C语言,离散数学)不认真学习,直接死背算法概念(考研中数据结构算法是背的完的),你也同样可以取得高分。但这样以考研为目的学习的数据结构的知识是残缺的,是不利于今后更深入的学习的。

但是我们现在的首要矛盾是时间与分数的不一致性:在尽量短的时间(1个月时间)内,取得较为理想的分数,这就需要一定的技巧。

(1)关于先修课程

皮皮灰个人认为,如果你只是为了应付考研,数据结构先修课只需要理解清楚下面这几点。

1.顺序结构:单纯地从上往下执行。

2.选择结构:

如果(今天天气好),那么就去外面跑步锻炼。

如果(今天下雨了),那么就在屋子里面不出去。

3.循环结构:

程序在一定条件下,原地转圈

最初有1根筷子;

循环(每次都增加一根筷子){

如果(筷子数量小于10)筷子数量加1

如果(筷子数量大于或者等于10)退出循环

}

4.结构体与指针

现实世界中的青蛙可以抽象成一类对象,一个青蛙对象又有特有的属性(青蛙的颜色,青蛙的大小),下图表示了一个青蛙对象。

fcca790f4eb3e54096ca75217bd55e7e.png

结构体可以将上述青蛙表示为

typedef struct{

String name;         //数据域

int age;             //数据域

struct Frog *next;   //指针域

}Frog;

那么不同的青蛙之间怎么建立联系?

9e32ff08cffbd73948743068e17e253a.png

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了,这个知识点需要从算法书上学习。去年该学校真题:

25fd7ce793c3b9d82780826b648c78f4.png

(3)掌握好复习深度

备考本门专业课考试,不应该纠结于死板的诸如:加不加*号,用不用&之类的纯语言问题,而应该把重点放在对于算法整体的理解上,放开死板的语法知识。

对于代码题,如果学校没有明确的语言要求,建议使用C++进行编写:new,cin,cout等可以节省大量的时间而且不容易出错。

对于复习深度,不同学校的专业课考试难度是不一样的,有的学校考图的算法题,但有的学校不考算法题。不同学校之间的题目难度差别也很大,这就需要考生根据自己选择的学校控制复习的深度。

那么该如何掌握好复习深度?

答案是研究历年真题,通过历年真题,可以确定考试题型、考试趋势、考试难度,以某学校真题为例:

658a39cd2aaabf4e79f9b71a30f6063b.png

从这两年的考题中,可以掌握一些规律:

1.算法题为2道,均为15分。

2.考察范围为图与树,目前暂时没考过顺序结构。

3.树的题目需要掌握非递归解法。

4.图算法没有给结构体,需要自己定义,考试前需要特别准备。

针对这些规律,我们可以有针对的进行准备

1.算法题复习重点为图与树,但顺序表的算法题也不能掉以轻心。

2.树的算法题需要掌握非递归解法。

3.图的结构体需要特别记忆。

最后,不管你考什么,最难不过算法导论。

(4)关于练习题的选择

后期皮皮灰会专门出一本数据结构的习题册,涵盖近几年各大985/211/重点双非的习题大全,敬请关注。

最后,皮皮灰祝愿您考上理想的大学,成为理想中的自己。

从哪里获得灰灰全书(数据结构)?

目前灰灰全书仍在整理之中,待视频更新完成时,灰灰全书将正式上架

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值