A卷Word下载.docx
- 文档编号:20250423
- 上传时间:2023-01-21
- 格式:DOCX
- 页数:11
- 大小:95.78KB
A卷Word下载.docx
《A卷Word下载.docx》由会员分享,可在线阅读,更多相关《A卷Word下载.docx(11页珍藏版)》请在冰豆网上搜索。
A
A、98B、99C、50D、48
3.对下列关键字序列用快速排序法进行排序时,速度最快的情形是:
A){21、25、5、17、9、23、30}B){25、23、30、17、21、5、9}
B){21、9、17、30、25、23、5}D){5、9、17、21、23、25、30}
4.设森林F中有三棵树,第一、第二和第三棵树的结点个数分别为M1、M2和M3。
与森林F对应的二叉树根结点的右子树上的结点个数是:
D
A)M1B)M1+M2C)M3D)M2+M3
四、填空题:
(每小题2分,共20分)
1.设一哈希表表长M为100,用除留余数法构造哈希函数,即H(K)=KMODP(P<
=M),为使函数具有较好性能,P应选
2.N个结点的二叉树采用二叉链表存放,共有空链域个数为N+1
3.单链表与多重链表的区别是
4.在各种查找方法中,平均查找长度与结点个数无关的是哈希查找
5.深度为6(根层次为1)的二叉树至多有63个结点。
6.已知二维数组A[20][10]采用行序为主方式存储,每个元素占2个存储单元,并且A[10][5]的存储地址是1000,则A[18][9]的存储地址是1168
7.在一个单链表中p所指结点之后插入s所指结点时,应执行
s->
next=p->
next和p->
next=s的操作.
8.广义表((a,b),c,d)的表头是(a,b),表尾是(c,d)
9.循环单链表LA中,指针P所指结点为表尾结点的条件是p->
next=head
10.在一个待排序的序列中,只有很少量元素不在自己最终的正确位置上,但离他们的正确位置都不远,则使用直接插入排序方法最好。
五、构造题:
(每小题5分,共25分)
1.已知一棵二叉树,其中序序列DBCAFGE,后序序列DCBGFEA,构造该二叉树。
A
BE
DCF
G
2.设哈希表长度为11,哈希函数H(K)=(K的第一字母在字母表中的序号)MOD11,若输入顺序为(D,BA,TN,M,CI,I,K,X,TA),处理冲突方法为线性探测再散列或链地址法,要求构造哈希表,并求出等概率情况下查找成功平均查找长度。
线性探测再散列:
20/9;
链地址法:
5/3
3.有一组关键字{50,52,85,22,96,17,36,55},请用快速排序,写出第一趟排序结果。
36,17,22,50,96,85,52,55
4.已知叶子结点值2,3,5,6,9,11,构造哈夫曼树,计算其带权路径长度。
36
1521
691110
55
23
87
5.画出8个结点的折半判定树。
六、算法设计题:
(每小题15分,共30分)
(仅要求给出子程序)
1.编写算法,判断带头结点的双向循环链表L是否对称。
(15分)
对称是指:
设各元素值a1,a2,...,an,则有ai=an-i+1,
即指:
a1=an,a2=an-1。
。
有节点a0
结点结构为:
prior
data
next
BoolJudge(node*head)
{
if(head==NULL||head->
prior==NULL)
returntrue;
else
node*pt,*qt;
pt=head;
qt=head->
prior;
while(pt!
=qt&
&
pt->
next!
=qt)
if(pt->
data!
=qt->
data)
returnfalse;
else
pt=pt->
next;
qt=qt->
}
2.二叉排序树T用二叉链表表示,其中各元素均不相同。
(1)写出递归算法,按递减顺序打印各元素的值。
(10分)
(2)写出完成上述要求的非递归算法。
(5分)
voidPrint(node*pt)
if(pt==NULL)
return;
Print(pt->
RChild);
cout<
<
data<
“”;
LChild);
《数据结构》试卷参考答案与评分标准
(2000级)
1.
集合结构、线性结构、树形结构、网状结构
2.
线性结构的前驱与后继之间为一对一关系,非线性结构的前驱与后继之间通常为一对多或多对多关系。
3.
解决特定问题的有限指令序列。
有限性、确定性、可行性、有0个或多个输入数据、有1个或多个输出结果。
4.
堆排序。
因为一趟堆排序排定一个元素,只需进行前10趟堆排序就可以了。
其它排序方法均需进行完全排序。
正确在(
)内打√,否则打。
1.()
2.(√)
3.(√)
4.()
5.(√)
1.C)
2.A)
3.
A)
4.
D)
97
2.
n+1
3.链域数目不同
4.哈希查找法
5.26–1
6.1168
7.p->
next
、
s
8.(a,b)
(c,d)
9.P->
next==LA
10.直接插入
1
2
3
4
5
6
7
8
9
10
K
TA
BA
M
CI
X
TN
I
ASL=20/9
ASL=15/9
{36,17,22,50,96,85,52,55}
WPL=11×
2+6×
2+9×
2+5×
3+2×
4+3×
=87
[注]:
哈夫曼树的左右子树可以互换。
5.
如果求中点时采用向上取整,则二叉树的形态为左子树偏长。
1.[解答]:
intjudge(DLinkListL){
p=L->
q=L->
while(p!
=q)
{if(p->
=q->
data)return0;
if(p->
next==q)return1;
p=p->
q=q->
}
return1;
可以不用返回值,而用打印信息。
[解答]:
(1)
voidprint_1(BiTreeT){
if(T!
=NULL)
{print_1(T->
printf(“%c”,T->
data);
print_1(T->
(2)
void
Print_2(BiTreeT)
{InitStack(&
S);
p=T;
=NULL||!
IsEmpty(S))
{while(p!
=NULL)
{Push(&
S,
p);
RChild;
if(!
IsEmpty(S))
{Pop(&
&
p);
printf(“%c”,
p->
data);
p=p->
LChild;
2000年B卷
1.四类基本数据结构的含义和特点。
2.简述栈和队列的共同点和不同点。
它们与线性表有什么关系?
3.举例说明什么是抽象数据类型。
4.算法的定义和特性。
(T)
(1)由树的中序表示和前序表示可以导出树的后序表示。
(T)
(2)将一棵树转换为二叉树表示后,该二叉树的根结点没有右子树。
(T)(3)采用二叉树来表示树时,树的先根次序遍历结果与其对应的二叉树的前序遍历结果是一样的。
(F)(4)在Huffman树中,权值较大的叶子结点离根较远。
(F)(5)用一维数组存储二叉树时,是以先根遍历的次序存储结点。
1.对线性表,在下列哪种情况下应当采用链表表示?
B
A)经常需要随机地存取元素B)经常需要进行插入和删除操作
C)表中元素需要占据一片连续的存储空间D)表中元素的个数不变
2.在待排序文件已基本有序的前提下,下述排序方法中效率最高的是:
A)直接插入排序B)简单选择排序C)快速排序D)归并排序
3.设有关键码序列(Q,G,M,Z,A,N,P,X,H),下面哪一个序列是从上述序列出发建堆的结果?
A)A,G,H,M,N,P,Q,X,Z B)A,G,M,H,Q,N,P,X,Z
C)G,M,Q,A,N,P,X,H,Z D)H,G,M,P,A,N,Q,X,Z
4.以下哪一个术语与数据的存储结构无关?
C
A)栈B)散列表C)穿线树D)双链表
1.字符A、B、C依次进入一个栈,按出栈的先后顺序组成不同的字符串,至多可以组成5个不同的字符串。
2.设仅包含根结点的二叉树的高度为0,则高度为k的二叉树的最大结点数为
。
3.在顺序表(2,5,7,10,14,15,18,23,35,41,52)中,用二分法查找关键码值12,所需的关键码比较次数为:
4。
4.快速排序的最坏情况,其待排序的初始排列是顺序排列或逆序排列.
5.二叉树的先序遍历序列为:
EFHIGJK,中序遍历序列为:
HFIEJKG,则该二叉树根的右子树的根是:
G。
6.顺序表(即顺序存储结构的线性表)中插入一个元素,
平均需要移动(n+1)/2个元素.
7.二维数组A[0..20][0..10]采用行序为主方式存储,每个元素占4个存储单元,并且A[0][0]的存储地址是1016,则A[9][8]的存储地址是1408
8.循环单链表La中,指针P所指结点为表尾结点的条件是p->
next=La
9.N个结点的二叉树,采用二叉链表存放,空链域的个数为n+1.
10.要在一个单链表中p所指结点之后插入s所指结点时,
应执行和的操作.
1.对以下关键字序列建立哈希表:
(SUN,MON,TUE,WED,THU,FRI,SAT),哈希函数为H(K)=(K中最后一个字母在字母表中的序号)MOD7。
用线性探测法处理冲突,要求构造一个装填因子为0.7的哈希表,并分别计算出在等概率情况下查找成功与不成功的平均查找长度。
2.已知一棵树如图所示,请将该树转化为二叉树。
3.给定权值{8,12,4,5,26,16,9},构造一棵带权路径长度最短的二叉树,并计算基带权路径长度。
4.已知关键码序列为{2,8,31,20,19,18,53,27},试画出逐个插入这8个关键码后的二叉排序树。
5.设有关键码序列(Q,G,M,Z,A,N,P,X,H),将其筛选为一个堆序列。
1.假设有一个循环链表的长度大于1,且表中既无头结点也无头指针。
已知s为指向链表某个结点的指针,试编写算法在链表中删除指针s所指结点的前趋结点。
2.编写算法,对n个关键字取整数值的记录序列进行整理,以使所有关键字为负值的记录排在关键字为非负值的记录之前。
要求:
采取顺序存储结构,至多使用一个记录的辅助存储空间,算法的时间复杂度为O(n)。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- A卷.docx