数据结构试卷及答案

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

期末考试《数据结构》A 卷
一、单项选择题(请将正确答案的字母填写在每 题对应的括号内,每小题1分,共20分)
1、下面关于串的叙述中,哪一个是不正确的?(
)
A .串是字符的有限序列
B .空串是由空格构成的串
C .模式匹配是串的一种重要运算
D .串既可以采用顺序存储,也可以采用链式存储 2、设无向图的顶点个数为n ,则该图最多有()条边。

A . n-1
B . n(n-1)/2
C . n(n+1)/2
D . 0 3、以下数据结构中,(
)是非线性数据结构。

A .树
B .字符串
C .队列
D .栈
4、下面关于线性表的叙述中,错误的是哪一个?()
A .线性表采用顺序存储,必须占用一片连续的存储单元。

B .线性表采用顺序存储,便于进行插入和删除操作。

C .线性表采用链接存储,不必占用一片连续的存储单元。

D .线性表采用链接存储,便于插入和删除操作。

5、假设以数组A[m]存放循环队列的元素,其头尾指针分别为front 和rear ,则当前队列
中的元素个数为()。

A . (rear-front+m)%m
B . rear-front+1
C . (front-rear+m)%m
D . (rear-front)%m
6、在单链表指针为p 的结点之后插入指针为s 的结点,正确的操作是()。

A . p->next=s; s->next=p->next;
B . s->next=p->next; p->next=s;
C . p->next=s; p->next=s->next;
D . p->next=s->next; p->next=s; 7、设栈的输入序列是1, 2, 3, 4,则()不可能是其出栈序列。

A .1,2,
4,3 B .2,1,3,4
C .1,4,3,2
D .4,3,1,2,
8、广义表(a,(b,c),d,e )的表头和表尾分别为(
)。

A . a 和(b,c),d,e
B . (a )和(b,c),d,e
C . a 和((b,c), d,e)
D . (a) 和((b,c), d,e)
得分评卷人二、判断题,在正确的题后括号内打“J”,在错误的题后括号内打“X”(每小题1分,共10分)
1、算法是由若干条指令组成的有穷序列,而一个程序不一定满足有穷性。

( )
2、顺序存储方式只能用于存储线性结构。

()
3、对任何数据结构链式存储结构一定优于顺序存储结构。

()
4、有向图的邻接矩阵是对称矩阵,无向图的邻接矩阵是非对称矩阵。

()
5、所有二叉树的度均为2。

()
6、满二叉树一定是完全二叉树,但完全二叉树不一定是满二叉树。

()
7、循环链表不是线性表。

()
8、文件是记录的集合,文件上的操作主要有两类:检索和维护。

()
9、线性表的特点是每个元素都有一个前驱和一个后继。

()
10、按中序遍历二叉排序树所得到中序序列是一个递增有序序列。

()
得分评卷人三、应用题(第1、4、6题每题10分,第2、3题每题8 分,第5题9分,
共55分)
1、已知一棵树边的集合为:
{( I , M ),( I ,N ),( E, I ),( B,E ),( B,D ),( A,B ),( G, J ),( G,K ),( C,G ),( C,F ),(H,L ),( C,H ),( A,C )}
用树形表示法画出此树,并回答下列问题:
(1)哪个是此树的根结点?哪些是叶子结点?
(2)树的度数和树的深度是多少?
(3)写出结点G的双亲、祖先、孩子?
(4)写出结点E的子孙、兄弟和结点E所在的层次?
2、已知一棵二叉树的中序遍历序列和后序遍历序列分别为EBIFJAGDH和
EIJFBGHDA。

要求:(1)画出这棵二叉树;
(2)写出这棵二叉树的前序遍历序列。

3、已知世界六大城市为北京(Pe)、纽约(N)、巴黎(Pa)、伦敦(L)、东京(T)、墨
本试卷共6页第3页
分别写出希尔排序(增量为5, 3, 1)、起泡排序和归并排序的前3趟排序结果。

6、设散列表长度为13,即其地址空间为0-12,散列函数H(k):K mod 13,对关键字序列{19,14,23,01,68,20,84,27,55,11,10,79}。

要求:
(1)画出用线性探查法解决冲突时构造的散列表(哈希表)。

(2)设每个记录的查找概率相等,计算查找成功的平均查找长度(ASLsucc)以及查找不成功的平均查找长度(ASLunsucc)。

黄淮学院2006 —2007年第二学期
计科系《数据结构》
期末试卷(A)评分标准及标准答案
一、选择题,共20个小题,每小题1分,共20分;本题为单项选择题,多选或错选均不能得分。

标准答案如下:
题号 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 答案 B B A B A B D C C C C D B D C A C C B D
二、判断题(在正确的题后括号内打“J”,在错误的题后括号内打“X”,共10个小题,每小题1分,共10分)。

标准答案如下:
题号 1 2 3 4 5 6 7 8 9 10
答案V X X X X V X V X V
三、应用题(共计55分)
1、10分
(1)根结点为A
叶子结点为:D, F, J, K, L, M, N
(2)树的度为3;树的深度为5。

(3)结点G的双亲为C
结点G祖先为C, A
结点G孩子为J, K
(4)结点E的子孙为I, M, N
结点E的兄弟为D
结点E所在的层次为3。

2、 ............................................................................................................................... 8分
(2)该二叉树前序序列:
(1)该二叉树为:
A B E F I J D G H
3、 ....................................................................................................................... 8 分
(1)六大城市的交通网络图
(2)最小生成树6个顶点和5条边的集合如下:
V(G)={Pe,N,Pa,L,T,M}
E(G)={(L,Pa,3),(Pe,T,21),(M,N,32),(L,N,55),(L,Pe,81)}
4、 ......................................................... ・..10 分(1)对应的哈夫曼树
这8个字母a,b,c,d,e,f,g,h的哈夫曼编码分别为:
1010 , 00 , 10000 , 1001 , 11 , 10001 , 01 , 1011
(2)其最小的加权路径长度:
WPL=19*2+21*2+32*2+6*4+7*4+10*4+2*5+3*5=38+42+64+24+28+40+10+15=261
5、 ............................................................................................................................................... 9 分希尔排序(增量为5, 2, 1)的前3趟排序结果:
第1趟结果:13 27 49 55 4 49 38 65 97 76
第2趟结果:4 27 13 49 38 55 49 65 97 76
第3趟结果:4 13 27 38 49 49 55 65 76 97
起泡排序的前3趟排序结
果: 第1趟结果:4 49 38 65 97 76 13 27 49 55
第2趟结果:4 13 49 38 65 97 76 27 49 55
第3趟结果:4 13 27 49 38 65 97 76 49 55
归并排序(二路归并)的前3趟排序结果:
第1趟结果:38 49 65 97 13 76 27 49 4 55
第2趟结果:38 49 65 97 13 27 49 76 4 55
第3趟结果:13 27 38 49 49 65 76 97 4 55
6、10分
(1)用线性探查法解决冲突时所构造的散列表:
(2(ASL ASLsucc=1+2+1+4+3+1+1+3+9+1+1+3)712=30/12=5/2=2. 5
ASLunsucc=(1+13+12+11+10+9+8+7+6+5+4+3+2)/13=7
四、算法设计(第1题7分,第2题8分,共计15分) 1、
linklist * insert(linklist *h,datatype x)
/*h是递增有序单链表的头指针,X为待插入元素*/ { linklist *p,*s;
p=h;
while(p->next!=NULL && p->next->data>x)
{ p=p->next;} if p->next==NUll
{ s=malloc(sizeof(linklist)); s->data=x;
s->next=NULL; p->next=s;
} else
{
s=malloc(sizeof(linklist)); s->data=x;
s->next=p->next; p->next=s;
} return (h); 2、/*初始值:low=0;high=n-1;*/ int BINSEARCH(R,low,high,K) table R[]; keytype K;
int low,high;
{
while(low<=high)
{mid=(low+high)/2;
if(K==R[mid].key) return mid;
if(K<R[mid].key)
BINSEARCH(R,low,mid-1,K);
Else
BINSEARCH(R,mid+1,high,K);
}
return(-1);
}。

相关文档
最新文档