2022年忻州师范学院计算机科学与技术专业《数据结构与算法》科目期末试卷A(有答案)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2022年忻州师范学院计算机科学与技术专业《数据结构与算法》科目期末试
卷A(有答案)
一、选择题
1、n个结点的完全有向图含有边的数目()。
A.n*n
B.n(n+1)
C.n/2
D.n*(n-1)
2、将两个各有N个元素的有序表归并成一个有序表,其最少的比较次数是()。
A.N
B.2N-1
C.2N
D.N-1
3、线性表的顺序存储结构是一种()。
A.随机存取的存储结构
B.顺序存取的存储结构
C.索引存取的存储结构
D.Hash存取的存储结构
4、有六个元素6,5,4,3,2,1顺序入栈,下列不是合法的出栈序列的是()。
A.543612
B.453126
C.346521
D.234156
5、在用邻接表表示图时,拓扑排序算法时间复杂度为()。
A.O(n)
B.O(n+e)
C.O(n*n)
D.O(n*n*n)
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、下列关于无向连通图特性的叙述中,正确的是()。
Ⅰ.所有的顶点的度之和为偶数Ⅱ.边数大于顶点个数减1 Ⅲ.至少有一个顶点的度为1
A.只有Ⅰ B.只有Ⅱ C.Ⅰ和Ⅱ D.Ⅰ和Ⅲ
8、一个具有1025个结点的二叉树的高h为()。
A.11
B.10
C.11至1025之间
D.10至1024之间
9、一棵哈夫曼树共有215个结点,对其进行哈夫曼编码,共能得到()个不同的码字。
A.107
B.108
C.214
D.215
10、数据序列(8,9,10,4,5,6,20,1,2)只能是下列排序算法中的()的两趟排序后的结果。
A.选择排序
B.起泡排序
C.插入排序
D.堆排序
二、填空题
11、在有n个顶点的有向图中,每个顶点的度最大可达______。
12、在哈希函数H(key)=key%p中,p值最好取______。
13、文件可按其记录的类型不同而分成两类,即______和______文件。
14、应用Prim算法求解连通网络的最小生成树问题。(1)针对如图所示的连通网络,试按如下格式给出在构造最小生成树过程中顺序选出的各条边。
(2)下面是Prim算法的实现,中间有5个地方缺失,请阅读程序后将它们补上。
15、在一棵m阶B-树中,若在某结点中插入一个新关键字而引起该结点分裂,则此结点中原有的关键字的个数是______;若在某结点中删除一个关键字而导致结点合并,则该结点中原有的关键字的个数是______。
16、在顺序存储的二叉树中,编号为i和j的两个结点处在同一层的条件是______。
17、当两个栈共享一存储区时,栈利用一维数组stack(1,n)表示,两栈顶指针为top[1]与
top[2],则当栈1空时,top[1]为______,栈2空时, top[2]为______,栈满时为______。
18、下列程序是快速排序的非递归算法,请填写适当的语句,完成该功能。
三、判断题
19、文件系统采用索引结构是为了节省存储空间。()
20、倒排文件是对次关键字建立索引。()
21、循环队列也存在空间溢出问题。()
22、广义表(((a,b,c),d,e,f))的长度是4。()
23、若从二叉树的任一结点出发,到根的路径上所经过的结点序列按其关键字有序,则该二叉树一定是哈夫曼树。()
24、任何二叉树的后序线索树进行后序遍历时都必须用栈。()
25、在外部排序过程中,对长度为n的初始序列进行“置换-选择”排序时,可以得到的最大初始有序段的长度不超过n/2。()
26、在用堆排序算法排序时,如果要进行增序排序,则需要采用“大根堆”。()
27、无环有向图才能进行拓扑排序。()
28、当改变网上某一关键路径上任一关键活动后,必将产生不同的关键路径。()
四、简答题
29、写出下列排序算法的基本思想,并写出对序列(23,12,35,47, 16,25,36,19,21,
16)进行排序时每一趟的结果。
30、调用下列C函数f(n),回答下列问题:
(1)试指出f(n)值的大小,并写出,f(n)值的推导过程。
(2)假定n=5,试指出,f(5)值的大小和执行,f(5)时的输出结果。
C函数:
31、对下面的关键字集{30,15,21,40,25,26,36,37}若查找表的装填因子为0.8,采用线性探测再哈希方法解决冲突,做:(1)设计哈希函数;(2)画出哈希表;(3)计算查找成功和查找失败的平均查找长度;(4)写出将哈希表中某个数据元素删除的算法。
五、算法设计题
32、按图的宽度优先搜索法写一算法判别以邻接矩阵存储的有向图中是否存在由顶点V i到顶点V j 的路径(i≠j)
33、已知二叉树丁的结点形式为(llink,data,count,rlink),在树中查找值为X的结点,若找到,则记数(count)加1;否则,作为一个新结点插入树中,插入后仍为二叉排序树,写出其非
递归算法。
34、试设计一个C语言算法(或C语言程序):用单链表做存储结构,以回车符为结束标志,
输入一个任意长度的字符串,然后判断该字符串是否为“回文”(正向读和反向读时,串值相同的
字符串称为“回文”),输出信息“Yes”或“NO”;最后删除字符串并释放全部空间。例如:若输入“ABCD12321DCBA”是回文,则输出“Yes”。若输入“ABCD123DCBA”,不是回文,则输出“NO”。要求:定义相关数据类型,不得使用数组(顺序表)做字符串的存储结构和辅助存储空间。假定
字符串的长度为n,试分析上述算法的时间复杂度。
35、设稀疏矩阵M m×n中有t个非零元素,用三元组顺序表的方式存储。请设计一个算法,计算矩
阵M的转置矩阵N,要求转置算法的时间复杂度为O(n+t)。