2022年郑州工商学院计算机科学与技术专业《数据结构与算法》科目期末试卷A(有答案)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2022年郑州工商学院计算机科学与技术专业《数据结构与算法》科目
期末试卷A(有答案)
一、选择题
1、下述文件中适合于磁带存储的是()。

A.顺序文件
B.索引文件
C.哈希文件
D.多关键字文件
2、将两个各有N个元素的有序表归并成一个有序表,其最少的比较次数是()。

A.N
B.2N-1
C.2N
D.N-1
3、算法的计算量的大小称为计算的()。

A.效率
B.复杂性
C.现实性
D.难度
4、循环队列A[0..m-1]存放其元素值,用front和rear分别表示队头和队尾,则当前队列
中的元素数是()。

A.(rear-front+m)%m
B.rear-front+1
C.rear-front-1
D.rear-front
5、用不带头结点的单链表存储队列,其队头指针指向队头结点,队尾指针指向队尾结点,则在进行出队操作时()。

A.仅修改队头指针
B.仅修改队尾指针
C.队头、队尾指针都可能要修改
D.队头、队尾指针都要修改
6、已知字符串S为“abaabaabacacaabaabcc”,模式串t为“abaabc”,采用KMP算法进行
匹配,第一次出现“失配”(s!=t)时,i=j=5,则下次开始匹配时,i和j的值分别
()。

A.i=1,j=0 B.i=5,j=0 C.i=5,j=2 D.i=6,j=2
7、排序过程中,对尚未确定最终位置的所有元素进行一遍处理称为一趟排序。

下列排序
方法中,每一趟排序结束时都至少能够确定一个元素最终位置的方法是()。

Ⅰ.简单选择排序Ⅱ.希尔排序Ⅲ.快速排序Ⅳ.堆排Ⅴ.二路归并排序
A.仅Ⅰ、Ⅲ、Ⅳ B.仅Ⅰ、Ⅱ、Ⅲ C.仅Ⅱ、Ⅲ、Ⅳ D.仅Ⅲ、Ⅳ、Ⅴ
8、一棵哈夫曼树共有215个结点,对其进行哈夫曼编码,共能得到()个不同的码字。

A.107
B.108
C.214
D.215
9、一棵非空的二叉树的前序序列和后序序列正好相反,则该二叉树一定满足()。

A.其中任意一个结点均无左孩子
B.其中任意一个结点均无右孩子
C.其中只有一个叶结点
D.其中度为2的结点最多为一个
10、对序列{15,9,7,8,20,-1,4}用希尔排序方法排序,经一趟后序列变为{15,-1,4,8,20,9,7}则该次采用的增量是()。

A.1
B.4
C.3
D.2
二、填空题
11、设m、n均为自然数,m可表示为一些不超过n的自然数之和,f(m,n)为这种表
示方式的数目。

例f(5,3)=5,有5种表示方式:3+2,3+1+1,2+2+1,2+1+1+1,
1+1+1+1+1。

①以下是该函数的程序段,请将未完成的部分填入,使之完整。

②执行程序,f(6,4)=______。

12、以下程序的功能是实现带附加头结点的单链表数据结点逆序连接,请填空完善之。

13、已知有序表为(12,18,24,35,47,50,62,83,90,115, 134)当用二分法查找90时,需______次查找成功,查找47时______成功,查找100时,需______次才能确定不成功。

14、应用Prim算法求解连通网络的最小生成树问题。

(1)针对如图所示的连通网络,试按如下格式给出在构造最小生成树过程中顺序选出的各条边。

(2)下面是Prim算法的实现,中间有5个地方缺失,请阅读程序后将它们补上。

15、数据结构中评价算法的两个重要指标是______。

16、设T和P是两个给定的串,在T中寻找等于P的子串的过程称为______,又称P为______。

17、在顺序存储的二叉树中,编号为i和j的两个结点处在同一层的条件是______。

18、设有一个空栈,栈顶指针为1000H(十六进制),现有输入序列为 l,2,3,4,5,经过PUSH,PUSH,POP,PUSH,POP,PUSH, PUSH之后,输出序列是______,而栈顶指针值是______。

设栈为顺序栈,每个元素占4个字节。

三、判断题
19、对磁带机而言,ISAM是一种方便的文件组织方法()
20、直接访问文件也能顺序访问,只是一般效率不高。

()
21、稀疏矩阵压缩存储后,必会失去随机存取功能。

()
22、广义表(((a,b,c),d,e,f))的长度是4。

()
23、任何二叉树的后序线索树进行后序遍历时都必须用栈。

()
24、对于有n个结点的二叉树,其高度为log2n。

()
25、排序算法中的比较次数与初始元素序列的排列无关。

()
26、抽象数据类型与计算机内部表示和实现无关。

()
27、若一个有向图的邻接矩阵对角线以下元素均为零,则该图的拓扑有序序列必定存在。

()
28、对两棵具有相同关键字集合的而形状不同的二叉排序树,按中序遍历它们得到的序列
的顺序却是一致的。

()
四、简答题
29、请写出应填入下列叙述中()内的正确答案。

排序有各种方法,如插入排序、快
速排序、堆排序等。

设一数组中原有数据如下:15,13,20,18,12,60。

下面是一组用
不同排序方法进行一遍排序后的结果。

()排序的结果为:12,13,15,18,20,60
()排序的结果为:13,15,18,12,20,60
()排序的结果为:13,15,20,18,12,60
()排序的结果为:12,13,20,18,15,60
30、假定对有序表:(3,4,5,7,24,30,42,54,63,72,87,95)进行折半查找,试回答下列问题:
(1)画出描述折半查找过程的判定树。

(2)若查找元素54,需依次与哪些元素比较?
(3)若查找元素90,需依次与哪些元素比较?
(4)假定每个元素的查找概率相等,求查找成功时的平均查找长度。

31、二叉树的带权路径长度(WPL)是二叉树中所有叶结点的带权路径长度之和,给定一棵二叉树T,采用二叉链表存储,节点结构为:
其中叶节点的weight域保存该结点的非负权值。

设root为指向T的根节点的指针,设计求T的WPL的算法。

要求:
(1)给出算法的基本设计思想。

(2)使用C或C++语言,给出二叉树结点的数据类型定义。

(3)根据设计思想,采用C或C++语言描述算法,关键之处给出注释。

五、算法设计题
32、编写程序,统计在输入字符串中各个不同字符出现的频度并将结果存入文件(字符串中的合法字符为A~Z这26个字母和0~9这10个数字)。

33、已知P是指向单向循环链表最后一个结点的指针,试编写只包含一个循环的算法,将线性表(a1,a2,…,a n-1,a n)改造为(a1,a2,…,a n-1,a n,a n-1,…,a2,a1)。

34、已知指针p指向带表头的中根次序线索二叉树中的某结点,试写一算法FFA(p,q),该算法寻找结点p的父亲结点q。

设线索二叉树的结点结构、表头结点结构和空树结构分别为(LTAG,LLINK,INFO, RLlNK,RTAG),且规定线索树的最左下结点的LLINK域和最右下结点的RLINKt域指向表头。

35、请运用快速排序思想,设计递归算法实现求n(n>1)个不同元素集合中的第f
(1≤i≤n)小元素。

参考答案
一、选择题
1、【答案】A
2、【答案】A
3、【答案】B
4、【答案】A
5、【答案】C
6、【答案】C
7、【答案】A
8、【答案】B
9、【答案】C
10、【答案】B
二、填空题
11、【答案】① 1;1;f(m,n-1);n② 9
12、【答案】
(1)p!=NULL //链表未到尾就一直进行
(2)q //将当前结点作为头结点后的第一元素结点插入13、【答案】2;4;3
【解析】二分法查找元素次数列表
查找100是找到115就停止了。

14、【答案】
(1)(0,3,1);(3,5,4);(5,2,2);(3,1,5);(1,4,3)
(2)① T[k];toVex=i② min=MaxInt;③ mispos=i④ exit(0)⑤ T[i];fromVex=v
【解析】Prim算法的执行类似于寻找图的最短路径的Dijkstra算法。

假设N={V,E}是连通图,E T是N上最小生成树边的集合。

算法从V T={u0}, E T开始,重复执行下述操作:在所有u属于V T,v属于V-V T的边(u,v)属于E中找一条代价最小的边(u0,v0)加入集合E T,同时将v0并入V T,直到V T=V为止。

15、【答案】算法的时间复杂度和空间复杂度
16、【答案】模式匹配;模式串
17、【答案】++a*b3*4-cd;18
【解析】中缀式相当于中序遍历,前缀式相当于前序遍历,后缀式相当于后序遍历。

18、【答案】23;100CH
三、判断题
19、【答案】×
20、【答案】×
21、【答案】√
22、【答案】×
23、【答案】×
24、【答案】×
25、【答案】×
26、【答案】√
27、【答案】√
28、【答案】√
四、简答题
29、答:①快速排序②起泡排序③直接插入排序④堆排序
30、答:(1)判定树如图所示:
(2)若查找元素54,需依次和元素30、63、42、54比较,查找成功。

(3)若查找元素90,需依次和元素30、63、87、95比较,查找失败。

(4)
31、答:(1)算法的基本思路是利用递归的思想来求解二叉树的带权路径长度,如果当前节点不是叶子节点,那么当前节点为根的树的带权路径长度便等于它的子树的带权路径长度之和,对于此函数要传入一个当前节点的树高的形参,那么递归调用孩子节点时只需要将这个形参加一即可。

(2)
五、算法设计题
32、答:算法如下:
33、答:算法如下:
34、答:算法如下:
35、答:算法如下:。

相关文档
最新文档