2017年贵州民族大学数据结构与算法(同等学力加试)考研复试核心题库
● 摘要
一、应用题
1. 设有n 个元素采用起泡排序法进行排序,通常需要进行多少趟排序? 对于第J 趟起泡通常需要进行多少次关键字比较? 在程序设计中如何设置判断条件,有可能使起泡趟数可以减少并且能完成排序。
【答案】n 个元素采用起泡排序法进行排序,通常需要进行n-1趟排序。第j 趟起泡排序要进行次比较。在一趟排序中,若没有记录交换,则表示排序完成。因而,可通过设标记来控制排
2. 设二叉树BT 的存储结构如表:
表 二叉树BT 的存储结构
其中BT 为树根结点的指针,其值为6, Lchild 、Rchild 分別为结点的左、右孩子指针域data 为结点的数据域。试完成下列各题:
(1)画出二叉树BT 逻辑结构;
(2)写出按前序、中序、后序遍历该二叉树所得到的结点序列:
(3)画出二叉树的后序线索树。
【答案】(1)二叉树的逻辑结构如图1所示:
序结束,下面语句段说明了标记flag 的使用。
图1
(2)前序序列:ABCEDFHGIJ
中序序列:ECBHFDJIGA
后序序列:ECHFJIGDBA
(3):二叉树的后续线索树如图2所示:
图2
3. 两个字符串s1和s2的长度分别为m 和n 。求这两个字符串最大共同子串算法的时间复杂度
,并简要说明理由。 为T (m ,n )。估算最优的T (m , n )
【答案】最优的T (m ,n )是D (n )。串S2是串S1的子串,且在S1中的位置是1。开始求
出最大公共子串的长度恰是串S2的长度。一般情况下,
4. 在采用线性探测法处理冲突的哈希表中,所有同义词在表中是否一定相邻?
【答案】不一定相邻。哈希地址为的关键字,和为解决冲突形成的探测序列f 的同义词,都争夺哈希地址i 。
5. 队列可以用循环单链表来实现,故可以只设置一个头指针或者只设置一个尾指针。请你分析对于循环单链表实现的队列,用哪种方案更合适。
【答案】循环单链表若只设头指针,则出队操作时间复杂度是
是若只设尾指针,则出队和入队操作时间复杂度都是而如对操作时间复杂度
因此,用循环单链表来实现队列,设置一个尾指针更合适。
6. 某文件系统为一级目录结构,文件的数据一次性写入磁盘,已写入的文件不可修改,但可多次 创建新文件。请回答如下问题。
(1)在连续、链式、索引三种文件的数据块组织方式中,哪种更合适? 要求说明理由。为定位文件数据块。需要在FCB 中设计哪些相关描述字段?
(2)为快速找到文件,对于FCB ,是集中存储好,还是与对应的文件数据块连续存储好? 要求说明理由。
【答案】根据题目所给条件,文件系统为一级目录结构,文件的数据一次性写入磁盘,已写入的文件不可修改,但是可以多次创建新文件,我们得知该文件系统是不能修改原文件的,只能将修改后的文件按新文件来存储,这与一次刻录光盘的存储方式相似。对于这样的系统,因为不需要随时添加或删除文件的内容,所以一次写入的文 件的大小是固定不变的,也是可预知的,而连续存放文件的方式就有其优点。这种方式只需要知道文件的起始地 址和文件的大小,便可以通过计算的方法找到文件的任何位置。文件若需要修改,则原文件作废,修改以后的文 件以新文件的形式重新写入,不会产生存储碎片,高效,高利用率。所以,如下作答。
(1)连续的数据块组织方式更合适,因为文件的数据一次性写入磁盘,已写入的文件不可修改,但是可以 多次创建新文件,我们得知该文件系统是不能修改原文件的,只能将修改后的文件按新文件来存储。不需要随时添加或删除文件的内容,所以一次写入的文件的大小是固定不变的,也是可预知的。这样,只需要知道文件的起 始地址和文件的大小,便可以通过计算的方法访问文件的任意位置。
为定位文件数据块。需要在FCB 中设计相关描述字段有: <起始块号,块数>或者〈起始块号,结束块号>。
(2)将所有的FCB 集中存放,文件数据集中存放。这样在随机查找文件名时,只需访问FCB 对应的块,可减少磁头移动和磁盘I/O访问次数。
7. 为什么文件的倒排表比多重表组织方式节省空间?
【答案】倒排表有两项,一是次关键字值,二是具有相同次关键字值的物理记录号,这些记录号有序且顺序存储,不使用多重表中的指针链接,因而节省了空间。
8. 已知图的邻接矩阵为:
当用邻接表作为图的存储结构,且邻接点都按序号从大到小排列时,试写出:
(1)以顶点V1为出发点的唯一的深度优先遍历序列;
(2)以顶点V1为出发点的唯一的广度优先遍历序列;
(3)该图唯一的拓扑有序序列。
相关内容
相关标签