2018年中国石油大学(北京)地球物理与信息工程学院858计算机科学基础之数据结构考研基础五套测试题
● 摘要
一、填空题
1. 已知如下程序段:
语句1执行的时间复杂度为_____:语句2执行的时间复杂度为_____:语句3执行的时间复杂度为_____:语句4执行的时间复杂度为_____。
【答案】(1)n+1 (2)n
(3)n(n+3)/2 (4)n(n+l)/2
【解析】语s 句1执行到不符合条件情况下,执行了n +1次。当语句1不符合条件了是不会执行语句2的,所以语句2被执行了n 次。语句3每次都要执行到不符合条件,故为2+3+4...... +(n+l) 加起来就是n(n+3)/2。语句3不符合条件了是不会执行语句4的。所以语句4被执行了1+2+3...... +n 即n(n+l)/2。
2. 设为哈夫曼树的叶结点数目,则该哈夫曼树共有_____个结点。
【答案】
【解析】哈夫曼树只有度为0和2的节点。
3. 在一个具有n 个单元的顺序栈中,假定以地址高端(即下标为n 的单元) 作为栈底,以top 作为栈顶指针,则当向栈中压入一个元素时,top 的变化是top =_____。
【答案】top ﹣1
【解析】由于栈底在地址高端,栈中压入一个元素时,栈顶向地址底端移动一个单位,所以top ﹣1。
4. 有向图G=(V, E) ,其中权d 。E(G)为
,则从源点0到顶点3的最短路径长度是_____,经过的中间顶点是_____。
第 2 页,共 45 页
,用三元组表示弧及弧上的
【答案】50;4
5. 应用prim 算法求解连通网络的最小生成树问题。
(1)针对如图所示的连通网络,试按如下格式给出在构造最小生成树过程中顺序选出的各条边。(始顶点号,终顶点号,权值
)
(2)下面是Prim 算法的实现,中间有5个地方缺失,请阅读程序后将它们补上。
的值在
图的顶点数,应由用户定义
用二维数组作为邻接矩阵表示
生成树的边结点
边的起点与终点
边上的权值
最小生成树定义
从顶点rt 出发构造图G 的最小生成树T , rt 成为树的根结点
初始化最小生成树
T
依次求MST 的候选边
遍历当前候选边集合
选具有最小权值的候选边
图不连通,出错处理
修改候选边集合
第 3 页,共 45 页
中
【答案】(1)
(2)
【解析】Prim 算法的执行类似于寻找图的最短路径的Dijkstra 算法。假设是N 上最小生成树边的集合。算法从属于
的边为止。
6. 设有两个算法在同一机器上运行,其执行时闻分别为100n 2和2n ,要使前者快于后者,n 至少为_____。
【答案】15 【解析】当
7. 设数组址为_____。
【答案】9174;8788
【解析】设一个元素的行标为i ,列标为j 。若以行序为主存储顺序,则它的存储地址为2000+((i﹣l)*80+j ﹣
1) 2。若以列序为主存储顺序,则它的存储地址为2000+((j﹣l)*50+i ﹣l)*2。
8. 如下的算法分别是后序线索二叉树求给定结点node 的前驱结点与后继结点的算法,
请在算法空格处填上正确的语句。 设线索二叉树的结点数据结构为其中:
left 指向其左孩子,
【答案】
第 4 页,共 45 页
是连通图
,
,v ,
直到
,开始,重复执行下述操作:在所有u 属于
加入集合
,同时将并入
属于E 中找一条代价最小的边
时,100n2>2n,而,2n
时,100n <2
的基地址为2000,每个元素占2个存储单元,若以行序为主序顺序存
储,则元素a[45,68]的存储地址为_____;若以列序为主序顺序存储,则元素a[45,68]的存储地
,
left 指向其前驱;,
right 指向其右孩子,,
,
right 指向其后继。