当前位置:文档之家› 04软件工程数据结构期末试卷2816

04软件工程数据结构期末试卷2816

10、与肝胆人共事,无字句处读书——周恩来
华南农业大学期末考试试卷(A卷)
2004学年第1学期 考试科目:数据结构(04软件工程) 
考试类型:(闭卷) 考试时间:120分钟
学号 姓名 年级专业
题号 一 二 三 四 总分 得分 评阅人 说明: 1 本试卷的答案必须写在答题卡上,答题卡同时写上专业、班级、学号、姓名;
一、选择题(每题2分,共30分)
1. hh设子串s1='ABCDEFG',s2='PQRST',函数con(x,y)返回x和y串的连接串,subs(s,i,j)返回串s的从序号i的字符开始的j个字符组成的子串,len(s)返回串s的长度,则
con( subs (s1,2,len(s2), subs(s1,len(s2),2) )的结果串是( )
A. BCDEF B. BCDEFG
C. BCPQRST D. BCDEFEF
2. 某堆栈的输入序列为a,b,c,d,下面的四个序列中,_________不可能是它的输出序列

A.a,c,b,d B.b,c,d,a
C.c,d,b,a D.d,c,a,b
3. 将长度为n的单链表链接在长度为m的单链表之后的算法的时间复杂度为_________.
A.0(1) B.0(n)
C.0(m) D.0(m+n)
4. 长度为n(1...n)的顺序循环队列中,front和rear分别指示队首和队尾
判断队列满的条件为_________.
A.rear%n=front B.front%n+1=rear
C.rear%n-1=front D.rear%n+1=front
5. 设二叉树有2n个结点,则对于m
A.n个度为0 B.2m个度为0
C.2m个度为1 D.2m个度为2
6. 某n>0个结点的二叉树的先序序列正好相反,则该二叉树一定不是_________的二叉树

A.任一结点无左孩子 B.任一结点无右孩子
C.深度为n D.存在度为2的结点
7. 二叉树用二叉链表表示,若要将其所有结点的左,右子树相互交换位置,则采用下列--遍历的方法较为合适

A.先序 B.中序 C.后序 D.按层
8. 对于二叉树的两个结点X和Y,应该选择_________两个序列来判断X是否Y 的祖先

A.先序和后序 B.先序和中序
C.中序和后序 D.任意两个序列都行
9. 最小生成树指的是连通图中_________.
A.边数最少的生成树 B.顶点相对较少的生成树
C.极小连通子图 D.所有生成树中权值之和最小的生成树
10. 具有n个顶点的强连通图至少有_________条弧

A.n-1 B.n
C.2n D.n(n-1)
11. 对20 个有序记录进行折半查找,查找成功的平均查找长度为_________.
A.5 B.37/10
C.39/10 D.41/10
12.

哈希表长度为m,哈希函数H(K)=K%P,一般来说P应取小于m的最大_________.
A.奇数 B.偶数
C.素数 D.合数
13. 对动态查找有高效率的查找表组织结构是_________.
A.有序表 B.分块有序表
C.循环链表 D B-树
14. 当初始数据有序时,不应采用_________.
A.堆排序 B.快速排序
C.基数排序 D.希尔排序
15. 在n个元素中找出两个最小的元素,当n很大时,采用_________方法比较次数较少

A.树型选择排序 B.简单选择排序
C.归并排序 D.快速排序
二、填空题(每空1分,共15分)
1. 一个算法的效率可分为 效率和 效率

2. 向一个长度为n的向量的第i个元素(1≤i≤n+1)之前插入一个元素时,需向后移动 ________个元素

3. 在具有n个单元的循环队列中,队满时共有 个元素

4. 假设有二维数组A6×8,每个元素用相邻的6个字节存储,存储器按字节编址
已知A的起始存储位置(基地址)为1000,则数组A的体积(存储量)为 ;末尾元素A57的第一个字节地址为 ;若按行存储时,元素A14的第一个字节地址为 ;若按列存储时,元素A47的第一个字节地址为

5. 设一棵完全二叉树具有1000个结点,则此完全二叉树有 个叶子结点,有 个度为2的结点,有 个结点只有非空左子树,有 个结点只有非空右子树

6. 10、线性有序表(a1,a2,a3,...,a256)是从小到大排列的,对一个给定的值k,用二分法检索表中与k相等的元素,在查找不成功的情况下,最多需要检索 次
设有100个结点,用二分法查找时,最大比较次数是

7. 散列法存储的基本思想是由 决定数据的存储地址



三、应用题(共40分)
1. 假设一棵二叉树的层次遍历序列是ABCDEFGHIJ和中序遍历序列是DBGEHJACIF,请画出该树
(5分)
2. 已知一个图的顶点为A、B、C、D,其邻接矩阵的上三角元素全为0(包括主对角线元素),其他元素均为1
请画出该图,并给出其邻接表
(5分)
3. 给定权值{8,12,4,5,26,16,9},构造一棵带权路径长度最短的二叉树,并计算其带权路径长度
(6分)
4. 使用Prim算法构造出如下图所示的的最小代价生成树,并将过程写出
(6分)








5. 判别序列(42 13 91 23 24 16 05 88)是否为堆,如果不是,则把它调整为堆
使之按关键字递减次序排列
请写出排序过程中得到的初始堆和一趟排序后的序列状态
(6分)
6. 设有一组关键字{19, 01, 23, 14, 55, 20, 84, 27, 68, 11, 10, 77},采用哈希函数: :H(key) = key MOD 13,,采用开

放地址法的二次探测再散列方法解决冲突,试在1~18的散列地址空间中对该关键字序列构造哈希表,并求该表的平均查找长度ASL
(6分)
7. 用序列(46,88,45,39,70,58,101,10,66,34)建立一个排序二叉树,画出该树,并
求在等概率情况下查找成功的平均查找长度
(6分)

三、算法题(15分)
1.算法分析题(5分)
阅读下面算法:
(1) 简要说明程序功能
(3分)
(2) 假设二叉排序树*bst是有n个结点的满二叉树,给出算法的时间复杂度
(2分)
int Proc (BSTree *bst, KeyType K)
{ BSTree f, q, s;
s=(BSTree)malloc(sizeof(BSTNode));
s-> key = K; s-> lchild = NULL; s-> rchild = NULL;
if ( *bst == NULL ) { *bst = s; return 1; }
f = NULL; q = *bst;
while( q != NULL )
{ if ( K < q -> key )
{ f = q; q = q -> lchild; }
else
{ f = q; q = q -> rchild; }
}
if ( K < f -> key ) f -> lchild = s;
else f -> rchild = s;
return 1;
}

2.算法设计题(10分)
长度为n的字符串存储在结点大小为1的单链表中
试写一算法,判断字符串是否中心对称(例如:'abccba'是中心对称)

数据结构答题卡(A)
学号 姓名 年级专业
题号 一 二 三 四 总分 得分 评阅人
一、 选择题(2分X 15=20分)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
二、 填空题(1分X15=15分)
1.
2.
3.
4.
5.
6.
7.


三、应用题(40分)




??

??

??

??




1


10、与肝胆人共事,无字句处读书——周恩来

相关主题
文本预览
相关文档 最新文档