2017年西南科技大学数据结构(同等学力加试)复试仿真模拟三套题
● 摘要
一、应用题
1. 设有6个有序表A 、B 、C 、D 、E 、F , 分别含有10、35、40、50、60和200个数据元素,各表中元素按升序排列。要求通过5次两两合并,将6个表最终合并成1个升序表,并在最坏情况下比较的总次数达到最小。请回答下列问题。
(1)给出完整的合并过程,并求出最坏情况下比较的总次数。 (2)根据你的合并过程,描述
n 【答案】
(1)6个表的合并顺序如下图所示。
个不等长升序表的合并策略,并说明理由。
对应于合并过程的哈夫曼树
根据上图中的哈夫曼树,6个序列的合并过程为:
第1次合并:表A 与表B 合并,生成含45个元素的表AB ; 第2次合并:表AB 与表C 合并,生成含85个元素的表ABC ; 第3次合并:表D 与表E 合并,生成含110个元素的表DE ;
第4次合并:表ABC 与表DE 合并,生成含195个元素的表ABCDE ; 第5次合并:表ABCDE 与表F 合并,生成含395个元素的最终表。
由于合并两个长度分别为m 和n 的有序表,最坏情况下需要比较m+n-1次,故最坏情况下比较的总次数计算如下:
第1次合并:最多比较次数= 10+35-1=44; 第2次合并:最多比较次数=45+40-1 = 84; 第3次合并:最多比较次数=50+60-1 = 109; 第4次合并:最多比较次数=85+110-1 = 194;
第5次合并:最多比较次数= 195+200-1 = 394; 比较的总次数最多为:44+84+109+194+394 = 825。
(2)各表的合并策略是:在对多个有序表进行两两合并时,若表长不同,则最坏情况下总的比较次数依赖于表的合并次序。可以借用哈夫曼树的构造思想,依次选择最短的两个表进行合并,可以获得最坏情况下最佳的合并效率。
2. 写出下列排序算法的基本思想,并写出对序列(23,12,35,47,16,25,36,19,21,16)进行排序时每一趟的结果。
【答案】此排序为双向起泡排序:从前向后一趟排序下来得到一个最大值,若其中发生交换,则再从后向前一趟排序,得到一个最小值。
第一趟:12,23,35,16,25,36, 19,21,16, 47 第二趟:12,16,23,35,16,25,36, 19,21,47 第三趟:12,16,23,16,25,35, 19,21,36, 47 第四趟:12, 16, 16,23, 19, 25, 35, 21, 36,47 第五趟:12,16,16,19,23,25,21,35, 36, 47 第六趟:12,16,16,19,21, 23,25,35, 36, 47 第七趟:12,16,16,19,21,23,25,35, 36, 47
3. 对下面的关键字集
若查找表的装填因子为0.8,采用线性探
测再哈希方法解决冲突,做:(1)设计哈希函数;(2)画出哈希表;(3)计算查找成功和查找失败的平均查找长度;(4)写出将哈希表中某个数据元素删除的算法。
【答案】(1)由于装填因子为0.8,关键字有8个,所以表长为哈希函数,哈希函数为
(2)哈希表如表所示:
表 哈希表
(3)计算查找失败时的平均查找长度,必须计算不在表中的关键字,
当其哈希地址为
时的查找次数。本例中
(4)算法如下:
用除留余数法设计
故查找失败和查找成功时的平均查找长度分别为:
4. 证明:置换选择排序法产生的初始归并段的长度至少为m (m 是所用缓冲区的长度)。
【答案】证明:由置换选择排序思想,第一个归并段中第一个元素是缓冲区中最小的元素,,缓以后每选一个元素都不应小于前一个选出的元素,故当产生第一个归并段时(即初始归并段)冲区中m 个元素中除最小元素之外,其他m-1个元素均大于第一个选出的元素,即当以后读入元素均小于输出元素时,初始归并段中也至少能有原有的m 个元素。证毕。
5. 设度为m 的树采用多重链表存储,毎个结点有m+1个域,其中有1个数据域,m 个指向孩子的指针。 则空指针的数目是多少?说明这种存储方式的利弊。
【答案】(1)空指针数目:n (n>0)个结点的m 度树共有nm 个链域,除根结点外,每个结点均有一个指针所指,故该树的空链域有nm-(n-1)=n(m-l )+1个。
(2)利弊:这种存储结构统一,便于处理但空链域造成存储效率低。
6. 若森林共有n 个结点和b 条边(b 【答案】森林的n 个结点开始可看做是n 个连通分量,加入一条边将减少一个连通分量。因为树可以定义为无环的图,故加入b 条边将减少b 个连通分量,因而n 个结点b 条边的森林有n-b 棵树。
相关内容
相关标签