2020南昌大学838考研真题及答案
一、简答题(每题6分)
1.
while(i<n){
s+=1;
i+=s;
}
求时间复杂度(On^1/2)
2.单链表,双链表,循环单链表,能否删除*p结点,如果能,时间复杂度是多少。(单链表不可以,循环双链表O1,循环单链表On)
3.1到n元素输入一次输入到栈中,且第二个输出的元素是n。问共有多少种输出次序?说出理由。(n-1种)
4.有n个长度均为m的英文单词,m<5,n>>m,问用什么方法排序最佳?并说明理由。(基数排序)
5.已知一棵树和遍历序列,问是以下哪种遍历:LNR,NLR,RNL,NRL。(NRL)
6.给了邻接矩阵,画出从结点1出发的深度优先生成树和广度优先生成树
7.简述快速排序原理。分析快速排序的最优,最差情况,以及它们的平均时间复杂度分别是多少。给了一组关键字序列,写出快排一次的结果。
二、程序阅读题(简要写出程序的功能)(40分)
8.考查栈(删除栈中所有值为m的值,并保持原数据次序不变动)
9.考查循环队列(将循环队列中的元素逆置)
10.考查链表(判断链表L是否为循环单链表)
三、综合题
11.给出一带权图,用Prim算法构造最小生成树,并画出最小生成树。
12. 有如下算法:若 i<4j(i=0,1... j=1,2,3...),则查找和比较4k-2,未找到再和 4k-1 或 4k-3 比较。若 i>4j 则查找4j,若 i=4j 则查找成功。画出表长N=16的判定树,并写出该算法查找成功的平均查找长度。((14+N)/8)
13.取一关键字序列第k个最小的数据元素,问采用什么排序最合适,为什么?给了一个含有12个关键字的序列,问输出第4个最小的数据元素之前共需比较次数。(采用冒泡排序,共需比较42次)
14.已知一棵二叉树只有度为2和0的结点,证明:(求和符号,下标i=0,上标n)2的 -(Li-1) 次方 = 1
其中n为叶子结点的总数,Li为第i个叶子结点所在的层数(根节点为第一层)。(设一叶子结点权值未1/(2^(Li-1)) ,那么双亲权值为为1/(2^(Li-2))递推之后根节点权值为1 即所有叶子权值之和为1)
15.已知一棵m叉树,高为h(王道原题)(24分)
①最后一层至多有多少结点?(2^(h-1))
②整棵树至多有多少结点?(2^h-1)
③给完全m叉树按照从上往下、从左往右的顺序从1开始编号,求第i个结点的双亲结点编号。求第i个结点的第k个孩子结点的编号(假设存在孩子结点)。((i-2)/m向下取整+1 m*(x-1)+k+1)
卷子括号内是考试写我所写出的答案(未写后期再写)关于题目的详细内容和作答后期慢慢补充。