数据结构与算法 模拟试卷七、八及参考答案(3)

2018-12-02 13:54

时循环也能终止执行,若给定值为K,表的长度为n,查找表的数据单元用R.item表示,键值用key表示,则在表尾设置岗哨的相应方法描述为_________。 10.对于二叉排序树的查找,若根结点元素的键值大于被查找元素的键值,则应该在该二叉树的_________上继续查找。

11.采用二次探测法解决冲突问题,对于键值为K、容量为m的闭散列表,若散列地址为d0,则发生冲突后,其第三个后继散列地址d3为___________。

12.对一组记录(54,38,96,23,15,72,60,45,83)进行直接插入排序时,当把第7个记录60插入到已排序的有序表时,为寻找其插入位置需比较________次。

13.对n个元素进行冒泡排序时,最少的比较次数是___________。 三.应用题(共30分)

1.已知序列(17,18,60,40,7,32,73,65,85),请给出采用冒泡排序

法对该序列作升序排序时每一趟的过程。(6分)

2.如图所示,在栈的输入端有6个元素,顺序为A,B,C,D,E,F能否在

栈的输出端得到序列DCFKBA及EDDFCA?若能,给出栈操作的过程,若不能,简述其理由。(8分)

11

5.设散列函数为H(K)=K mod 11,散列表长度为11(散列地址空间0..10),给定表(SUN,MON,TUE,WED,THU,FRI,SAT)中,取单词的第一个字母在英语字母表中的序号为键值K,构造一开散列表,并用拉链法解决有关地址冲突。(7分)

四、设计题(共14分)

1.设以二叉链表为二叉树的存储结构,结点的结构如下: lchild data rchild 求二叉树中叶子结点的数目

2.已知奇偶转换排序如下所述:第一趟对所有奇数i,a[i]和 a[i+1]进行比较,第二趟对所有偶数i,将a[i]和a[i+1]进行比较,每次比较时若a[i]>a[i+1],则将两者交换,以后重复上述二趟过程交替进行,直至整个数组有序。 (1) 试问:排序结束的条件是什么?(2分)

12

(2) 编写一个实现上述排序过程的算法:void oesort(int a[],int n)。 其中data域为整数,试设计一个算法void change(bitreptr r):若结点左孩子的data域的值大于右孩子的data域的值,则交换其左、右子树。(6分)

模拟试卷八参考答案

一、单项选择题(每小题2分,共30分) 1.C 2.D 3.D 4.B 5.A 6.D

7.B

8.A

9.D

10.D

11.C 12.A 13.B 14.B 15.A

二、填空题(每空2分,共26分) 1.O(m*n)

2. 索引表

3.p->next=q->next; 5. 深度优先搜索 6.pop(s),push(s,5) 7.B、C

9.R.item[n+1].key=k 10. 左子树

11.(do+22)%m

13.n-1

三、应用题(共30分) 1. (6分) 依题意:

1趟 (17,18,60,40,7,32,73,65,85) 2趟 (17,18,40,7,32,60,65,73,85) 3趟 (17,7,18,32,40,60,65,73,85) 4趟 (7,17,18,32,40,60,65,73,85) 5趟 (7,17,18,32,40,60,65,73,85)

4.Ls!=NUUL 8.A、D、G 12.3

13

第5趟元素未交换,则排序结束。(各1分) 2. (8分)

1. 能得到序列: DCFEBA(1分)

操作过程如下:push,push, push,push,pop,pop, push,push, pop,pop, pop,pop(4分) 2. 不能得到序列:EDBFCA(1分)

因为要得到E需将A,B,C,D顺序入栈, 根据LIFO原则, 不可能A在C之前出栈(2分) 3.(6分)

先序遍历序列:ABCDFGHE 中序遍历序列:BADGFHCE 后序遍历序列:BGHFDECA ★各2分 4.(3分) V2 V4 V0 V1 V3 5. (7分)

0 1 2 3 4 5 6 ^ SAT WED ^ MON ^ ^ ^ ^ 14 FRI ^ SUN SAT ^ TUE THU ^

四、设计题(共14分) 1. (6分):

int LeafCount_BiTree(Bitree T)//求二叉树中叶子结点的数目 {

if(!T) return 0; //空树没有叶子

else if(!T->lchild&&!T->rchild) return 1; //叶子结点

else return Leaf_Count(T->lchild)+Leaf_Count(T->rchild);//左子树的叶子数加上右子树的叶子数}//LeafCount_BiTree

2.(8分):

void OE_Sort(int a[ ],int n)//奇偶交换排序的算法 {

change=1; while(change) {

change=0;

15

for(i=1;ia[i+1]) {

a[i]<->a[i+1]; change=1; }

for(i=0;ia[i+1]) {

a[i]<->a[i+1]; change=1; } }//while }//OE_Sort

分析:本算法的结束条件是连续两趟比较无交换发生

16


数据结构与算法 模拟试卷七、八及参考答案(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:城市道路智慧监控系统解决方案

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: