2023年大连交通大学计算机科学与技术专业《数据结构与算法》科目期末试卷B(有答案).docx

上传人:zf 文档编号:30812630 上传时间:2024-01-30 格式:DOCX 页数:12 大小:303.09KB
下载 相关 举报
2023年大连交通大学计算机科学与技术专业《数据结构与算法》科目期末试卷B(有答案).docx_第1页
第1页 / 共12页
2023年大连交通大学计算机科学与技术专业《数据结构与算法》科目期末试卷B(有答案).docx_第2页
第2页 / 共12页
2023年大连交通大学计算机科学与技术专业《数据结构与算法》科目期末试卷B(有答案).docx_第3页
第3页 / 共12页
2023年大连交通大学计算机科学与技术专业《数据结构与算法》科目期末试卷B(有答案).docx_第4页
第4页 / 共12页
2023年大连交通大学计算机科学与技术专业《数据结构与算法》科目期末试卷B(有答案).docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

2023年大连交通大学计算机科学与技术专业《数据结构与算法》科目期末试卷B(有答案).docx

《2023年大连交通大学计算机科学与技术专业《数据结构与算法》科目期末试卷B(有答案).docx》由会员分享,可在线阅读,更多相关《2023年大连交通大学计算机科学与技术专业《数据结构与算法》科目期末试卷B(有答案).docx(12页珍藏版)》请在冰豆网上搜索。

2023年大连交通大学计算机科学与技术专业《数据结构与算法》科目期末试卷B(有答案).docx

2023年大连交通大学计算机科学与技术专业《数据结构与算法》科目期末试卷B(有答案)

一、选择题

1、若需在O(nlog2n)的时间内完成对数组的排序,且要求排序是稳定的,则可选择的排序方法是(  )。

A.快速排序B.堆排序C.归并排序D.直接插入排序

2、从未排序序列中依次取出一个元素与已排序序列中的元素依次进行比较,然后将其放在已排序序列的合适位置,该排序方法称为(  )排序法。

A.插入B.选择C.希尔D.二路归并

3、连续存储设计时,存储单元的地址(  )。

A.一定连续B.一定不连续C.不一定连续D.部分连续,部分不连续

4、在用邻接表表示图时,拓扑排序算法时间复杂度为(  )。

A.O(n)B.O(n+e)C.O(n*n)D.O(n*n*n)

5、已知有向图G=(V,E),其中V={V1,V2,V3,V4,V5,V6,V7},E={},G的拓扑序列是(  )。

A.V1,V3,V4,V6,V2,V5,V7B.V1,V3,V2,V6,V4,V5,V7

C.V1,V3,V5,V2,V6,V7D.V1,V2,V5,V3,V4,V6,V7

6、若一棵二叉树的前序遍历序列为a,e,b,d,c,后序遍历序列为b,c,d,e,a,则根结点的孩子结点(  )。

A.只有eB.有e、bC.有e、cD.无法确定

7、已知字符串S为“abaabaabacacaabaabcc”,模式串t为“abaabc”,采用KMP算法进行匹配,第一次出现“失配”(s!

=t)时,i=j=5,则下次开始匹配时,i和j的值分别(  )。

A.i=1,j=0B.i=5,j=0C.i=5,j=2D.i=6,j=2

8、设X是树T中的一个非根结点,B是T所对应的二叉树。

在B中,X是其双亲的右孩子,下列结论正确的是(  )。

A.在树T中,X是其双亲的第一个孩子

B.在树T中,X一定无右兄弟

C.在树T中,X一定是叶结点

D.在树T中,X一定有左兄弟

9、一棵哈夫曼树共有215个结点,对其进行哈夫曼编码,共能得到(  )个不同的码字。

A.107B.108C.214D.215

10、对n个记录的线性表进行快速排序为减少算法的递归深度,以下叙述正确的是(  )。

A.每次分区后,先处理较短的部分

B.每次分区后,先处理较长的部分

C.与算法每次分区后的处理顺序无关

D.以上三者都不对

二、填空题

11、分别采用堆排序,快速排序,起泡排序和归并排序,对初态为有序的表,则最省时间的是______算法,最费时间的是______算法。

12、顺序查找n个元素的顺序表,若查找成功,则比较关键字的次数最多为______次;当使用监视哨时,若查找失败,则比较关键字的次数为______。

13、关键码序列(Q,H,C,Y,Q,A,M,S,R,D,F,X),要按照关键码值递增的次序进行排序,若采用初始步长为4的希尔排序法,则一趟扫描的结果是______;若采用以第一个元素为分界元素的快速排序法,则扫描一趟的结果是______。

14、线性表L=(a1,a2,…,an)用数组表示,假定删除表中任一元素的概率相同,则删除一个元素平均需要移动元素的个数是______。

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

16、当两个栈共享一存储区时,栈利用一维数组stack(1,n)表示,两栈顶指针为top[1]与top[2],则当栈1空时,top[1]为______,栈2空时,top[2]为______,栈满时为______。

17、一棵有n个结点的满二叉树有______个度为1的结点、有______个分支(非终端)结点和______个叶子,该满二叉树的深度为______。

18、设正文串长度为n,模式串长度为m,则串匹配的KMP算法的时间复杂度为______。

三、判断题

19、倒排序文件的优点是维护简单。

(  )

20、对磁带机而言,ISAM是一种方便的文件组织方法(  )

21、一个广义表可以为其他广义表所共享。

(  )

22、数组不适合作为任何二叉树的存储结构。

(  )

23、若从二叉树的任一结点出发,到根的路径上所经过的结点序列按其关键字有序,则该二叉树一定是哈夫曼树。

(  )

24、中序遍历一棵二叉排序树的结点就可得到排好序的结点序列。

(  )

25、顺序存储结构的主要缺点是不利于插入或删除操作。

(  )

26、快速排序和归并排序在最坏情况下的比较次数都是O(nlog2n)。

(  )

27、在动态存储管理系统中做空间分配时,最佳适配法与最先适配法相比,前者容易增加闲置空间的碎片。

(  )

28、对大小均为n的有序表和无序表分别进行顺序查找,在等概率查找的情况下,对于查找成功,它们的平均查找长度是相同的,而对于查找失败,它们的平均查找长度是不同的。

(  )

四、简答题

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、用一个数组S(设大小为MAX)作为两个堆栈的共享空间。

请说明共享方法,栈满/栈空的判断条件,并用C语言或PASCAL语言设计公用的入栈操作push(i,x),其中i为0或1,用于表示栈号,x为入栈值。

31、用单链表保存m个整数,节点的结构为(data,link),且|data|<n(n为正整数)。

现要求设计一个时间复杂度尽可能高效地算法,对于链表中绝对值相等的节点,仅保留第一次出现的节点而删除其余绝对值相等的节点。

例如若给定的单链表head如下

删除节点后的head为

要求

(1)给出算法的基本思想

(2)使用C或C++语言,给出单链表节点的数据类型定义。

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

说明所涉及算法的时间复杂度和空间复杂度。

五、算法设计题

32、设计算法将一个带头结点的单链表A分解为两个具有相同结构的链表B、C,其中B表的结点为A表中值小于零的结点,而C表的结点为A表中值大于零的结点(链表A的元素类型为整型,要求B、C表利用A表的结点)。

33、设二叉树用二指针结构存储(可以是动态存储结构),元素值为整数,且元素值无重复,请编写子程序,求出以元素值等于某个给定的整数的结点为根的子树中的各个叶结点。

34、设A[1..100]是一个记录构成的数组,B[1..100]是一个整数数组,其值介于l~100之间,现要求按B[1..100]的内容调整A中记录的次序,比如当B[1]=11时,则要求将A[1]的内容调整到A[11]中去。

规定可使用的附加空间为O

(1)。

35、编写对有序表进行顺序查找的算法,并画出对有序表进行顺序查找的判定树。

假设每次查找时的给定值为随机值,又查找成功和不成功的概率也相等,试求进行每一次查找时和给定值进行比较的关键字个数的期望值。

参考答案

一、选择题

1、【答案】C

2、【答案】A

3、【答案】A

4、【答案】B

5、【答案】A

6、【答案】A

7、【答案】C

8、【答案】D

9、【答案】B

10、【答案】A

二、填空题

11、【答案】起泡;快速

12、【答案】n;n+1

13、【答案】(Q,A,C,S,Q,D,F,X,R,H,M,Y);(F,H,C,D,a,A,M,Q,R,S,Y,X)

14、【答案】(n-1)/2

15、【答案】2;4;3

【解析】二分法查找元素次数列表

查找100是找到115就停止了。

16、【答案】0;n+1;top[1]+1=top[2]

17、【答案】

【解析】满二叉树没有度为1的结点,度为0的结点等于度为2的结点个数+1。

18、【答案】O(m+n)

三、判断题

19、【答案】×

20、【答案】×

21、【答案】√

22、【答案】×

23、【答案】×

24、【答案】√

25、【答案】√

26、【答案】×

27、【答案】√

28、【答案】√

四、简答题

29、答:

①快速排序 ②起泡排序 ③直接插入排序 ④堆排序

30、答:

两栈共享一向量空间(一维数组),栈底设在数组的两端,两栈顶相邻时为栈满。

设共享数组为S[MAX],则一个栈顶指针为一l,另一个

栈顶指针为MAX时,栈为空。

用C语言写的入栈操作push(i,x)如下:

31、答:

(1)算法思想:

算法的核心思想是用空间换时间。

定义一个大小为n的布尔数组flag,初始时所有的元素都赋值为false,用来标识遍历过程中是否出现元素绝对值为flag的节点。

然后遍历链表,遍历过程中,每一个当前结点data域的绝对值所对应的flag位:

若为真,则删除该结点;若为假(false),则将flag位置为(true)。

(2)节点的数据结构定义如下:

(3)

(4)只遍历一次链表,所以时间复杂度为O(m)(m为单链表中元素的个数),申请大小为n的数组,所以空间复杂度为O(n)(n为节点绝对值的最大值)。

五、算法设计题

32、答:

算法如下:

33、答:

算法如下:

34、答:

算法如下:

35、答:

算法如下:

期望值分析:

在等概率情况下,则查找成功的平均查找长度为

(n+1)/2,查找失败的平均查找长度为(n+2)/2(失败位置除小于每一个,还存在大于最后一个)。

若查找成功和不成功的概率也相等,则查找成功时和关键字比较的个数的期望值约为(n+1)/4。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 英语

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1