南京理工大学课程考试试卷学生考试用
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
A)仅修改头指针B)仅修改尾指针C)头、尾指针都修改D)头、尾指针都可能修改
2.二维数组A中,每个元素的长度为3个字节,行下标从0到9,列下标从0到11,则连续存放该数组至少需要字节
A) 100 B)240 C)360 D)340
3.一棵有124个叶子的完全二叉树,最多有个结点
A)247 B)248 C)249 D)250
A)2 B)3 C)4 D)6
10.下面叙述中不正确的是。
A)任何关键活动不按期完成就会影响整个工程完成时间
B)任何一个关键活动提前完成,将使整个工程提前完成
C)所有关键活动提前完成,将使整个工程提前完成
D)所有关键活动按期完成,整个工程也按期完成
11.用二分查找表中查找一个数据的速度比用顺序查找
A)必然块B)必然慢C)相等D)不能确定
A)堆排序>快速排序>希尔(Shell)排序B)堆排序<希尔(Shell)排序<快速排序
C)堆排序>希尔(Shell)排序>快速排序D)堆排序>快速排序>希尔(Shell)排序
19.哈希表R范围是R[0]到R[13],哈希函数H(key)=key%11。已有4个数据15,38,61,84在表中,位置分别在R[4],R[5],R[6],R[7],如果用二次探测再散列,数据49的位置是
for(i=1;i<m;i++)
for(j=0;j<n;j++) a[i][j]=i*j;
A)O(m2) B) O(n2) C)O(m*n) D) O(m+n)
8.一棵深度为h的完全二叉树上所含结点的个数不小于
A) 2hB)2h-1 C)2h-1D)2h+1
9.在一个带头结点的循环双向链表中,若要在p所指向的结点之前插入一个新结点,则需要相继修改个指针域
A)右子树上的所有B)右子树上的部分C)左子树上的所有D)左子树上的部分
16.在一棵平衡二叉树中,每个结点的平衡因子数的取值范围是
A)-1到1 B)-2到2 C)1到2 D)0到1
17.将两个各有n个元素的有序表归并为一个有序表,至少比较次数是。
A)n B) 2n-1 C) 2n D) n-1
18.就排序算法所用的辅助空间多少而言,下面正确的是
n个顶点的图而言,算法的时间复杂度是(13)。
三、简答题(20分)
1.简单叙述哈希查找的思想,链地址法是如何解决冲突的?(2+3分)图-1
2.引入平衡二叉树的目的是什么?在图-2中的平衡二叉树中加入70后
需要做什么类型的平衡,画出平衡后的二叉树。(2+2+2分)
3.(9分)有一个AOE网如图-3:
1
南京理工大学课程考试试卷(学生考试用)
课程名称:数据结构学分:3大纲编号062204
试卷编号:考试方式:闭卷满分分值:100考试时间:120分钟
组卷日期:2007年6月4日组卷教师(签字)张宏审定人(签字)王树梅
学生班级:计算机学院05级
一、选择题(2*20=40分)
1.对于链队,在进行删除操作时,
2.(7分)有n个结点的有向图(图的顶点号为1至n)用邻接表表示,试完成从图中删去弧<u,v>的算法DelArc(adj,u,v)。(注:(1)为简便,假定弧<u,v>是存在的(2)adj为邻接表表头数组,数组下标从0计(3)结点的数据域名称可自己命名)
4. 有向图如图-1所示:
写出一个拓扑序列(7),添加孤(8)后,则仅可能
有唯一的拓扑序列。
5.由一棵二叉树的先序序列和(9)可唯一的确定这棵二叉树。
6.已知完全二叉树的第8层有8个结点(根为第1层),则叶子数
为(10)。
7. Dijkstra算法可以求从指定源点到其它各顶点的(11)路径,
路径长度按(12)序产生,若采用邻接矩阵存储有向图,对于有
4.利用3,6,8,12这四个值作为叶子结点的权,生成一棵哈夫曼树,该树的带权利路径长度为
A)55 B)29 C) 58 D) 39
5.一个堆是一一个有向图的邻接表中,每个顶点链表中结点的个数等于该定点的
A)入度B)出度C)度D)度数减1
7.下面程序段的时间复杂度是。
{
for(i=0;i<n;i++) visited[i]=0;
for(i=0;i<n;i++)
if(!visited[i]) tr(adj,i+1);
}
2.假定对数据序列(7,3,5,9,1,12,8,15)进行快速排序,则进行第一次划分后,在7的左边数据依次是(2),7的右边数据依次是(3)。
3.从邻接矩阵A= 可以看出,该图有(4)个顶点。如果是有向图,该图有(5)条弧,若是无向图,该图有(6)条边。
{
visit(v0); //visit是一个函数,完成对给定图顶点的访问
visited[v0-1]=1;
for(p=adj[v0-1].firstarc;p!=NULL;p=p->nextarc)
if(!vi[p->adjvex-1]) tr(adj,p->adjvex);
}
void tr1(adj,n)
二、填空题(26分,每空2分)
1.下面是对无向图的一种操作,其中adj是无向图的邻接表,n是图的顶点数,顶点标号为1到n,visited是一个全程变量的一维数组,初值为全0,下面的类C/C++算法,tr1对图做什么操作(1)。
void tr(adj,v0)// v0是图的顶点号,值范围为1到n之间的整数
A)R[8] B) R[2] C)R[5] D) R[9]
20.树的遍历策略可分为先序遍历和后序遍历(也有称为中序遍历的);二叉树的基本遍历有三种,即先序、中序和后序。这里,我们把由树转化得到的二叉树叫做这棵树对应的二叉树。结论:“树的序遍历序列与其对应的二叉树的序遍历序列相同”是正确的
A)后(中)先B)后(中)中C)先中D)先后
2 1 2
2 4 1图-2
3
图-3
(1)求出所有事件的最早发生时间与最迟发生时间(3分)
(2)列出所有关键活动(3分)
(3)画出该AOE网的逆邻接表(3分)
四、算法设计(用类-C/类-C++描述)(14分)
1.(7分)完成一个在根为tree的二叉排序树中插入数据x的算法insert (tree,x)。(二叉排序树结点的三个域为:左、右孩子lchild与rchild,数据域dada)
12.对图进行广度优先遍历时,通常采用来实现算法
A)栈B)队C)树D)图
13.具有2000个结点的二叉树的最小深(高)是
A)9 B) 10 C)11 D)12
14.对有序表(3,6,8,10,12,15,16,18,21,25,30)中,用二分查找数据11,需要比较次
A)2 B)3 C)4 D)5
15.在一个二叉树的中序遍历中,根结点的右边只有结点
2.二维数组A中,每个元素的长度为3个字节,行下标从0到9,列下标从0到11,则连续存放该数组至少需要字节
A) 100 B)240 C)360 D)340
3.一棵有124个叶子的完全二叉树,最多有个结点
A)247 B)248 C)249 D)250
A)2 B)3 C)4 D)6
10.下面叙述中不正确的是。
A)任何关键活动不按期完成就会影响整个工程完成时间
B)任何一个关键活动提前完成,将使整个工程提前完成
C)所有关键活动提前完成,将使整个工程提前完成
D)所有关键活动按期完成,整个工程也按期完成
11.用二分查找表中查找一个数据的速度比用顺序查找
A)必然块B)必然慢C)相等D)不能确定
A)堆排序>快速排序>希尔(Shell)排序B)堆排序<希尔(Shell)排序<快速排序
C)堆排序>希尔(Shell)排序>快速排序D)堆排序>快速排序>希尔(Shell)排序
19.哈希表R范围是R[0]到R[13],哈希函数H(key)=key%11。已有4个数据15,38,61,84在表中,位置分别在R[4],R[5],R[6],R[7],如果用二次探测再散列,数据49的位置是
for(i=1;i<m;i++)
for(j=0;j<n;j++) a[i][j]=i*j;
A)O(m2) B) O(n2) C)O(m*n) D) O(m+n)
8.一棵深度为h的完全二叉树上所含结点的个数不小于
A) 2hB)2h-1 C)2h-1D)2h+1
9.在一个带头结点的循环双向链表中,若要在p所指向的结点之前插入一个新结点,则需要相继修改个指针域
A)右子树上的所有B)右子树上的部分C)左子树上的所有D)左子树上的部分
16.在一棵平衡二叉树中,每个结点的平衡因子数的取值范围是
A)-1到1 B)-2到2 C)1到2 D)0到1
17.将两个各有n个元素的有序表归并为一个有序表,至少比较次数是。
A)n B) 2n-1 C) 2n D) n-1
18.就排序算法所用的辅助空间多少而言,下面正确的是
n个顶点的图而言,算法的时间复杂度是(13)。
三、简答题(20分)
1.简单叙述哈希查找的思想,链地址法是如何解决冲突的?(2+3分)图-1
2.引入平衡二叉树的目的是什么?在图-2中的平衡二叉树中加入70后
需要做什么类型的平衡,画出平衡后的二叉树。(2+2+2分)
3.(9分)有一个AOE网如图-3:
1
南京理工大学课程考试试卷(学生考试用)
课程名称:数据结构学分:3大纲编号062204
试卷编号:考试方式:闭卷满分分值:100考试时间:120分钟
组卷日期:2007年6月4日组卷教师(签字)张宏审定人(签字)王树梅
学生班级:计算机学院05级
一、选择题(2*20=40分)
1.对于链队,在进行删除操作时,
2.(7分)有n个结点的有向图(图的顶点号为1至n)用邻接表表示,试完成从图中删去弧<u,v>的算法DelArc(adj,u,v)。(注:(1)为简便,假定弧<u,v>是存在的(2)adj为邻接表表头数组,数组下标从0计(3)结点的数据域名称可自己命名)
4. 有向图如图-1所示:
写出一个拓扑序列(7),添加孤(8)后,则仅可能
有唯一的拓扑序列。
5.由一棵二叉树的先序序列和(9)可唯一的确定这棵二叉树。
6.已知完全二叉树的第8层有8个结点(根为第1层),则叶子数
为(10)。
7. Dijkstra算法可以求从指定源点到其它各顶点的(11)路径,
路径长度按(12)序产生,若采用邻接矩阵存储有向图,对于有
4.利用3,6,8,12这四个值作为叶子结点的权,生成一棵哈夫曼树,该树的带权利路径长度为
A)55 B)29 C) 58 D) 39
5.一个堆是一一个有向图的邻接表中,每个顶点链表中结点的个数等于该定点的
A)入度B)出度C)度D)度数减1
7.下面程序段的时间复杂度是。
{
for(i=0;i<n;i++) visited[i]=0;
for(i=0;i<n;i++)
if(!visited[i]) tr(adj,i+1);
}
2.假定对数据序列(7,3,5,9,1,12,8,15)进行快速排序,则进行第一次划分后,在7的左边数据依次是(2),7的右边数据依次是(3)。
3.从邻接矩阵A= 可以看出,该图有(4)个顶点。如果是有向图,该图有(5)条弧,若是无向图,该图有(6)条边。
{
visit(v0); //visit是一个函数,完成对给定图顶点的访问
visited[v0-1]=1;
for(p=adj[v0-1].firstarc;p!=NULL;p=p->nextarc)
if(!vi[p->adjvex-1]) tr(adj,p->adjvex);
}
void tr1(adj,n)
二、填空题(26分,每空2分)
1.下面是对无向图的一种操作,其中adj是无向图的邻接表,n是图的顶点数,顶点标号为1到n,visited是一个全程变量的一维数组,初值为全0,下面的类C/C++算法,tr1对图做什么操作(1)。
void tr(adj,v0)// v0是图的顶点号,值范围为1到n之间的整数
A)R[8] B) R[2] C)R[5] D) R[9]
20.树的遍历策略可分为先序遍历和后序遍历(也有称为中序遍历的);二叉树的基本遍历有三种,即先序、中序和后序。这里,我们把由树转化得到的二叉树叫做这棵树对应的二叉树。结论:“树的序遍历序列与其对应的二叉树的序遍历序列相同”是正确的
A)后(中)先B)后(中)中C)先中D)先后
2 1 2
2 4 1图-2
3
图-3
(1)求出所有事件的最早发生时间与最迟发生时间(3分)
(2)列出所有关键活动(3分)
(3)画出该AOE网的逆邻接表(3分)
四、算法设计(用类-C/类-C++描述)(14分)
1.(7分)完成一个在根为tree的二叉排序树中插入数据x的算法insert (tree,x)。(二叉排序树结点的三个域为:左、右孩子lchild与rchild,数据域dada)
12.对图进行广度优先遍历时,通常采用来实现算法
A)栈B)队C)树D)图
13.具有2000个结点的二叉树的最小深(高)是
A)9 B) 10 C)11 D)12
14.对有序表(3,6,8,10,12,15,16,18,21,25,30)中,用二分查找数据11,需要比较次
A)2 B)3 C)4 D)5
15.在一个二叉树的中序遍历中,根结点的右边只有结点