数据结构题库教材
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2013-2014学年二学期数据结构期末考试模拟试卷(1~6卷)
一、应用题(3小题,共24分)
1已知某字符串S中共有8种字符,各种字符分别出现2次、1次、4次、5次、7次、3
次、4次和9次,对该字符串用[0,1]进行前缀编码,问该字符串的编码至少有多少位。
【解答】以各字符出现的次数作为叶子结点的权值构造的哈夫曼编码树如图所示。其带权路
径长度=2X 5+1X 5+3X 4+5X 3+9X 2+4X 3+4X 3+7X 2=98,所以,该字符串的编码长度至少为98位。
2.已知关键码序列为(Ja n, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec), 散列表的地址空间为0~16,设散列函数为H(x)= [i/2」(取下整数),其中i为关键码
中第一个字母在字母表中的序号,采用链地址法处理冲突构造散列表,并求等概率情况下查找成功的平均查找长度。
【解答】H(Ja n)=10/2=5, H(Feb)=6/2=3, H(Mar)=13/2=6, H(Apr)=1/2=0 H(May)=13/2=6, H(Ju n)=10/25, H(Jul)=10/25, H(Aug)=1/2=0
H(Sep)=19/2=8, H(Oct) =15/2=7, H(Nov) =14/2=7, H(Dec) =4/2=2
采用链地址法处理冲突,得到的开散列表如下:
平均查找长度=(1 X 7+2X 4+3X 1)/12=18/12
3.分析下面各程序段的时间复杂度
(1)s1(int n)
{ int p=1,s=0;
for (i=1;iv=n;i++)
{ p*=i;s+=p; }
return(s);
} ——0(n)
(2)s2(int n)
x=0;y=0;
For (k=1;kv=n;k++) x++;
For (i=1;iv=n;i++)
For (j=1;jv=n;j++)
y++; ——0(n)
1•下述算法的功能是什么?
ListNode *Demo l(LinkList L P ListNode *p)
("L是有头结蛊的单链表
ListNodc *q=L->rLCxt P
(1) V ‘V … 」(1 )返回结点*p的直接前趋结点地址。
q=q->nest;
if (q) return q,
else «ro< #*p not in L");
I
⑵
i/oid Demo2(LisINode
*p ,ListNode +q)
〔//p t*q*8S 表中的
两个结点
(2)交换结点*p和结点*q (p和q的值不变)。
DataTypetemp;
temp=p->data, p->data=q->data; q-x^ata^emp,
1.对给定的一组权值W=( 5, 2, 9, 11, 8, 3, 7),试构造相应的哈夫曼树,并计算它的带权路径长度。【解答】构造的哈夫曼树如图所示。
2.已知散列函数H(k)=k mod 12,键值序列为(25, 37, 52, 43, 84, 99, 120, 15, 26, 11, 70, 82), 采用链表法处理冲突,试构造散列表。
【解答】H(25)=1, H(37)=1, H(52)=4, H(43)=7, H(84)=0, H(99)=3,
H(120)=0, H(15)=3, H(26)=2, H(11)=11, H(70)=10, H(82)=10
构造的开散列表如下:
3.分析下面各程序段的时间复杂度
(1)for (i=0;ivn;i++)
for (j=0;jvm;j++)
A[i][j]
--- 0( n*m)
(2)s=0;
for (i=0;ivn;i++)
for (j=0;jvn;j++)
s+=B[i][j];
sum=s;
——0(n2)
(3)A=B; B=C; C=A;
——0(1)
3•设无向图G(所下图所示),要求给出从1出发对该图进行深度优先和广度优先遍历的序列。
4•已知无向图G 的邻接表如图所示,分别写出从顶点 1出发的深度遍历和广度遍历序列。
二、判断正误(7小题,共14分)
1 •线性表链式存储的特点是可以用一组任意的存储单元存储表中的数据元素。
( V ) 2•一个栈的输入序列为:
A ,
B ,
C , D,可以得到输出序列: C, A , B , Do (X ) 3. 稀疏矩阵压缩存储后,必会失去随机存取功
能。 (V )
4•如果某个有向图的邻接表中第
i 条单链表为空,则第i 个顶点的出度为零。( V ) 5. 用邻接矩阵存储图,
所占用的存储空间大小只与图中顶点个数有关, 而与图的边数无关。
(V ) 6. 向二叉排序树
中插入一个结点需要比较的次数可能大于该二叉树的高度。 (X ) 7.
逻辑结构与数据元素本身的内容和形式无关。 (V )
1 •对链表进行插入和删除操作时不必移动链表中结点。 ( V )
3•如果两个串含有相同的字符,则说明它们相等。
( X ) 4. 在线索二叉树中,任一结点均
有指向其前趋和后继的线索。
(X ) 5.
带权无向图的最小生成树是唯一的。 ( X ) 6. 稀疏矩阵的压缩存储可以
用一个三元组表来表示稀疏矩阵中的非
0元素。( V ) 7. 无向图的邻接矩
阵一定是对称的,有向图的邻接矩阵一定是不对称的。
( X ) &分块查找的平均查找长度不仅与索引表的长度有关,而且与块的长度有关。
( V ) 1. 由树转化成二叉树,该二叉树的右子树
不一定为空。 (X )
2. 稀疏矩阵的压缩存储可以
用一个三元组表来表示稀疏矩阵中的非
0元素。( V ) 4. 分块查找的
平均查找长度不仅与索引表的长度有关,而且与块的长度有关。
(V ) 5. 设初始记录关键字基本有
序,则快速排序算法的时间复杂度为
0(nlog 2n )。( X ) 6. 每种数据结构都具备三个基本操作:插入、删除和查找。( X
广度优先遍历序列为:
1,2, 4,3,5, 6
【解答】深度优先遍历序列1,2, 3,4,5, 6