2022年中国矿业大学(北京)计算机科学与技术专业《数据结构与算法》科目期末试卷A(有答案)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2022年中国矿业大学(北京)计算机科学与技术专业《数据结构与算法》
科目期末试卷A(有答案)
一、选择题
1、将两个各有N个元素的有序表归并成一个有序表,其最少的比较次数是()。
A.N
B.2N-1
C.2N
D.N-1
2、已知广义表LS=((a,b,c),(d,e,f)),用head和tail数取出LS中原子e
的运算是()。
A.head(tail(LS))
B.tail(head(LS))
C.head(tail(head(tail(LS))))
D.head(tail(tail(head(LS))))
3、若某线性表最常用的操作是存取任一指定序号的元素和在最后进行插入和删除运算,
则利用()存储方式最节省时间。
A.顺序表
B.双链表
C.带头结点的双循环链表
D.单循环链表
4、有六个元素6,5,4,3,2,1顺序入栈,下列不是合法的出栈序列的是()。
A.543612
B.453126
C.346521
D.234156
5、向一个栈顶指针为h的带头结点的链栈中插入指针s所指的结点时,应执行()。
A.h->next=s
B.s->next=h
C.s->next=h;h->next=s
D.s->next=h-next;h->next=s
6、已知关键字序列5,8,12,19,28,20,15,22是小根堆(最小堆),插入关键字3,调整后的小根堆是()。
A.3,5,12,8,28,20,15,22,19
B.3,5,12,19,20,15,22,8,28
C.3,8,12,5,20,15,22,28,19
D.3,12,5,8,28,20,15,22,19
7、下列叙述中,不符合m阶B树定义要求的是()。
A.根结点最多有m棵子树 B.所有叶结点都在同一层上
C.各结点内关键字均升序或降序排列 D.叶结点之间通过指针链接
8、每个结点的度或者为0或者为2的二叉树称为正则二叉树。n个结点的正则二叉树中有()个叶子。
A.log2n
B.(n-1)/2
C.log2n+1
D.(n+1)/2
9、有关二叉树下列说法正确的是()。
A.二叉树的度为2
B.一棵二叉树的度可以小于2
C.二叉树中至少有一个结点的度为2
D.二叉树中任何一个结点的度都为2
10、就平均性能而言,目前最好的内排序方法是()排序法。
A.起泡
B.希尔插入
C.交换
D.快速
二、填空题
11、若用n表示图中顶点数目,则有______条边的无向图成为完全图。
12、下面程序的功能是用递归算法将一个整数按逆序存放到一个字符数组中。如123存放成321。请填空:
13、外排序的基本操作过程是______和______。
14、VSAM(虚拟存储存取方法)文件的优点是:动态地______,不需要文件进行______,并能较快地______进行查找。
15、对于一个具有n个结点的单链表,在已知的结点半p后插入一个新结点的时间复杂度为______,在给定值为x的结点后插入一个新结点的时间复杂度为______。
16、下列程序是快速排序的非递归算法,请填写适当的语句,完成该功能。
17、一棵有n个结点的满二叉树有______个度为1的结点、有______个分支(非终端)结点和______个叶子,该满二叉树的深度为______。
18、在顺序存储的二叉树中,编号为i和j的两个结点处在同一层的条件是______。
三、判断题
19、对处理大量数据的外存介质而言,索引顺序存取方法是一种方便的文件组织方法。()
20、倒排文件的目的是为了多关键字查找。()
21、数组不适合作为任何二叉树的存储结构。()
22、在链队列中,即使不设置尾指针也能进行入队操作。()
23、深度为k的二叉树中结点总数小于等于2k-1。()
24、一般来说,若深度为k的n个结点的二叉树只有最小路径长度,那么
从根结点到第k-1层具有的最多结点数为2k-1-1,余下的n-2k-1+1个结点在第k层的任一位置上。()
25、数据元素是数据的最小单位。()
26、顺序存储方式的优点是存储密度大,且插入、删除运算效率高。
()
27、平衡二叉树中,若某个结点的左、右孩子的平衡因子为零,则该结点的平衡因子一定是零。()
28、对两棵具有相同关键字集合的而形状不同的二叉排序树,按中序遍历它们得到的序列的顺序却是一致的。()
四、简答题
29、设目标为t=‘abcaabbabcabaacbacba’,模式为P=‘abcabaa’
(1)计算模式p的nextval函数值。
(2)不写出算法,只画出利用KMP算法进行模式匹配时每一趟的匹配过程。
30、给出一组关键字:29,18,25,47,58,12,51,10,分别写出按下列各种排序方法进行排序时的变化过程:
(1)归并排序,每归并一次书写一个次序。
(2)快速排序,每划分一次书写一个次序。
(3)堆排序,先建成一个堆,然后每从堆顶取下一个元素后,将堆调整一次。
31、二叉树的带权路径长度(WPL)是二叉树中所有叶结点的带权路径长度之和,给定一棵二叉树T,采用二叉链表存储,节点结构为:
其中叶节点的weight域保存该结点的非负权值。设root为指向T的根节点的指针,设计求T的WPL的算法。要求:
(1)给出算法的基本设计思想。
(2)使用C或C++语言,给出二叉树结点的数据类型定义。
(3)根据设计思想,采用C或C++语言描述算法,关键之处给出注释。
五、算法设计题
32、设A[1..100]是一个记录构成的数组,B[1..100]是一个整数数组,其值介于l~100之间,现要求按B[1..100]的内容调整A中记录的次序,比如当B[1]=11时,则要求将A[1]的内容调整到A[11]中去。规定可使用的附加空间为O(1)。