数据结构2021下半年期末考总结分析
作者:互联网
引言
在我还记得的时候写一下吧,之前也有学长写过,他们写得挺好的,我也是参照他们的思路来大致写一下吧,希望能够给后来人带来帮助。
1.上机前复习
- 考前复习的话,你要想拿高分肯定是所有老师给的OJ平台上都要做的,不能说很熟练吧,但至少你得做过,有过这么一个思路吧,不然考试你哪里够时间做
- 其次重点的话就是书上既有讲,老师也在OJ上布置了,这些题目一定要着重注意,例如说前面的线性表,队列和栈至少得会用吧,单链表的构建和插入删除等操作也需要熟悉
- 如果是树的话什么二叉树的构建肯定要掌握的了,还要熟悉二叉树的各种特性,会求某个结点深度啊,两点之间的路径,找出叶子节点什么的
- 关于图就比较难了,笔者也只能说是半桶水,邻接表的构建似乎比较少见,平时的关于图应用的例题里基本上也都是用邻接矩阵来出题,所以感觉侧重点不在那,能够做到会构建邻接表就可以了我觉得(出现我觉得的时候就不太可信了)
- 图到后面的各种算法比较复杂,相比于前面的难度不是一个量级的,因此要是想拿高分的话至少需要了解过大概算法的思路吧,像prim算法,迪杰斯特拉算法,拓扑排序等等,但是这个基本都是压轴题了,关于题目类型我后面再说
- 查找表的话有难的部分也有不难的部分,像什么折半查找,插值查找,这些写一两次了解以下就好了,比较难的话有二叉排序树吧,但是其实和二叉树是比较类似的,树的基础比较好也不难理解,平衡二叉树就稍微复杂一点,这个有必要也是可以掌握的,当然这些应该都属于压轴题范畴了
- 哈希查找,线性探测再散列,二次探测再散列等等,查找往难了考也是可能会出这种类型的题,也不算很难。
- 最后就是我们亲爱的排序算法啦,要是有时间就全部排序都看一遍吧,我感觉比较难记住的主要就是归并排序,其他都没有那么的可怕,代码量也不多,多敲几次就可以记住了
以上全凭本学期个人累积的经验,本人非科班,因此有不足之处还请谅解,肯定也有写得比我好的经验贴,本人就是随手记录一下
2.考前注意
考试时不能打开任何除oj平台,编程软件之外的页面,考试开始前也不可以在编程工具上写代码,老师都会有提醒的
考试时长时两个小时,自己把握着时间,肯定先做简单题,简单题占分也高,我们今年的考试是使用华为云桌面来操作,再在云桌面上用chrome登录考试网址,考试网址是和OJ类似的平台,做题规则也是一样,只看提交结果是否正确(应该吧)反正我看到的是这样,不知道老师后面会不会再看代码,应该不会,看代码多折磨
3.考试题型
ok接下来就是我们的重头戏啦,首先说一下大致类型
1,2题一般都是线性表,栈,队列什么比较简单的,反正我今年做的就很简单,这些题基本上大家都能做对
第三四题会和树图 有关,会难一点,
第五题一般是压轴题,无论是思路复杂度上还是代码量上都会比较大,做不出来也没有关系,很多人也做不出来
(今年我们机房(排行榜显示没有一个做出第五题,但是这个排行榜不知道是什么范围的)的人里面也没有一个做出来的)笔者在该排行榜排第七还是第八(做了四题),第一名同样没有做出最后一题
第一题(35分)
疫苗预约(题目背景),主要考察对线性表的插入和删除,这里用链表或者用数组都是可以的
题目大致要求就是给出三个初始数组
然后需要完成对某个数组的插入或删除操作,随便写反正,
能实现要求就行,非常简单,没学过数据结构都能写
第二题(25分)
(取号什么的背景,反正也是和医院有关的) 折半查找,
查找成功则输出查找位置,并且要求输出查找次数
第三题 (15分)
树的拓扑排序,有一说一这题题目我没太看懂,但是实现它的功能是非常简单的
题目要求
大致是要求将一颗二叉树通过拓扑排序转换成有向图,也就是按拓扑顺序输出结点,双亲视为弧尾,孩子结点视为弧头
输入要求
第一行要求先输入结点的个数,例如节点个数为T,然后输入T个结点,题目给出的是字符
第二行输入每个结点对应的双亲位置,-1代表没有双亲
输出要求
按拓扑排序顺序输出结点(若多个结点同时都是没有双亲,则按字典顺序输出)
输入
8 A B C D E F G H
-1 0 4 1 0 1 4 6
输出
A B D E C F G H
(应该是这样)
第三题的话可能有些人一开始看着没看明白什么意思,其实我也没太懂,题目要求说要用到双亲结构来存储,就是要求写二叉树的结构吗?
但其实我感觉根本不用写,直接用结构体数组存储所有结点的字符和双亲位置,从0开始存储就好,然后就按着输入的双亲位置,自己画一颗树出来,推一下很快就知道怎么做了(第三题也并不算难)
第四题 (15分)
希尔排序
本次题目的要求是对一串字符序列进行升序排序(按ABCDEF这样排下去)
只要你掌握了希尔排序,写出这道题只是时间问题,不过这一次它的题目输入是不小心给少了一个数据,害的我做错了一次(就很不严谨啊好吧出题老师)
每年的话基本都会有一道排序题的,所以
第五题 (10分)
求单调最短路径问题
说白了就是迪杰斯特拉算法,基本上就是和Djikstra算法一模一样的要求,
输入输出要求可以直接参考OJ上的最短路径题目,可以说是一模一样了
可以参考我之前写的一篇迪杰斯特拉的算法,输入输出要求基本上是一致的
最后
其实我感觉这次的题目还是算简单了,虽然说第五题我没做出来,不过我也没见到有多少个做出来的(不枉我认真学了一学期呜呜呜)
我看过一个学长写的2020年的关于机考和笔试的题,感觉他们那一年的机考更加难吧(第五题考了什么三叉霍夫曼)二叉霍夫曼我还不会写呢hhh
今年虽然简单吧,但是迪杰斯特拉我最后还是不够时间敲了加上也不熟练(千万不要学我考前一天还去玩密室)有能力的可以冲下第五题,我们一般人就快点写完前四题就挺好的了
标签:期末考,数据结构,题目,结点,算法,查找,2021,排序,二叉树 来源: https://blog.csdn.net/weixin_52424236/article/details/122150964