山东大学软件学院数据结构(考试)——期末考试回忆版

2020年1月9日 8:30~10:30,山东大学软件学院数据结构考试

试卷结构和题目:
一. 简答题(20分)

  1. 给一个序列插入堆栈中,又给出两个序列,问能否通过堆栈操作,得到这后给出的两个序列
  2. 给一个二叉树前序序列和中序序列,写出后序序列
  3. 写出将四维数组以列主映射方式映射到一维数组的映射公式
  4. 含有n个非叶节点的m阶B-树,计算出该树非叶节点所含有的最少的关键字总数
  5. 给一个AOV图,写出拓扑排序算法的思想,并写出图中所有的拓扑序列

二. 应用题(50分)

  1. 散列表Hash(k) = k%11,散列表(线性探查)长度为13,给一组序列:(1)构建出该散列表;(2)散列表中某2个元素的比较次数;(3)画出删除指定元素后的散列表
  2. 题中给出反对角矩阵的具体定义,要求画出一个4x4的反对角矩阵的样例,并写出将其映射到一维数组的映射公式
  3. 给一个序列,构建出AVL搜索树,并求出平均查找长度(每个节点出现的概率相等)
  4. 给一个序列,通过堆排序删除2个最小元素,画出删除2个最小元素后的堆
  5. 给一个无向加权图,使用Prim算法,从题中指定的顶点开始构建最小成本生成树

三. 算法题(30分)

  1. 将一个数组中的奇数元素都移到偶数元素之前,要求有最优时间复杂度,写出算法思想,并用C++实现,再求出时间复杂度
  2. 二叉树的节点:lchild左指针域,data数据,rchild右指针域,构建一个单链表,将二叉树的叶子节点从左至右连接起来,head为此单链表头节点,用叶节点的右指针域存放链表节点,写出算法思想,并用代码实现,并分析算法复杂度

个人认为这次考试应该可以95+,至少对于我来说是比较简单的,后面两个算法题也是读完就知道怎么做。数据结构我是考前25天开始复习的,对于考试,复习只需要掌握思想,对,就是思想,代码不用会背,但只有了解代码才能熟悉思想,真正要学好数据结构,一定要钻研代码。(算法题第一题,采用two pointers思想,很容易解决)
正如我之前在“山东大学计算机组成原理(考试)——期末考试回忆版”里面说的一样,考前多去其他班级的考前答疑,并向其他班同学交换一些资料。
最后预祝各位同学,期末取得好成绩。

在这里强烈推荐一波《算法笔记》和《算法笔记上机训练实战指南》两本书再加上PTA网站(网站上有PAT的题),每天花上一小时,坚持住,绝对没问题,不求快只求稳,静下心,每道题弄懂,适时地复习所学过的。这一套最好是在大二上学期结束后的寒假开始,当然也可以在大二上跟着课程进度学习。我是大二上学期开始刷的,中间中断了几个月,寒假开始继续刷。怎么说呢?这两本书不看是巨大的损失!!!


更新一下,数据结构期末考试98分,还可以。

你可能感兴趣的:(数据结构与算法,考试)