2017年东北理工大学数据结构(同等学力加试)复试仿真模拟三套题
● 摘要
一、应用题
1. 证明任一结点个数为n 的二叉树的高度至少为0 (logn )。
【答案】最低高度二叉树的特点是,除最下层结点个数不满外,其余各层的结点数都应达到各层的最大值。设n 个结点的二叉树的最低高度是h ,则n 应满足
。解此不等式,并考
虑h 是整数. 则有即任一结点个数为n 的二叉树的高度至少为
2. 某博物馆最多可容纳500人同时参观,有一个出入口,该出入口一次仅允许个通过。参观者的活动描述如下:
参观者进程i :
进门;
参观;
出门;
coend
请添加必要的信号量和P 、
V 的互斥与同步。
要求写出完整的过程,说明信号量含义并赋初值。 【答案】 定义两个信号量
博物馆可以容纳的最多人数
用于出入口资源的控制
参观者进程i :
进门;
第 2 页,共 24 页
操作,以实现上述操作过程中
3. 组织待检索文件的倒排表的优点是什么?
【答案】倒排表作为索引的优点是索引记录快,因为从次关键字值直接找到各相关记录的物理记录号,倒排因此而得名(因通常的查询是从关键字查到记录)。在插入和删除记录时,倒排表随之修改,倒排表中具有相同次关键字的记录号是有序的。
4. 某文件系统空间的最大容量为4TB 以磁盘块为基本分配单位,磁盘块大小为1KB 。文件控制块(FCB )包含一个512B 的索引表区。请回答下列问题。
(1)假设索引表区仅采用直接索引结构,索引表区存放文件占用的磁盘块号。索引表项中块号最少占多少字节? 可支持的单个文件最大长度是多少字节?
(2)假设索引表区采用如下结构:第0〜7字节采用<起始块号,块数>格式表示文件创建时预分配的连续存储空间,其中起始块号占6B ,块数占2B ; 剩余504字节采用直接索引结构,一个索引项占6B ,则可支持的单个文件最大长度是多少字节? 为了使单个文件的长度达到最大,请指出起始块号和块数分别所占字节数的合理 值并说明理由。
【答案】
(1)文件系统存储空间共有块数可存放
(2)
为表示
个块号,索引表项占
512B
个索引项,每个索引项对应一个磁盘块,故最大文件长度:
块号占6字节,块数占2字节的情形下,最大文件长度
:
理由:
合理的起始块号和块数所占字节数分别为
块数占4B 或以上,就可表示4TB 大小的文件长度,达到文件系统的空间上限。
5. 二叉树的带权路径长度(WPL )是二叉树中所有叶结点的带权路径长度之和,给定一棵二叉树T ,采用二叉链表存储,节点结构为:
其中叶节点的weight 域保存该结点的非负权值。设root 为指向T 的根节点的指针,设计求T 的WPL 的算法。要求:
(1)给出算法的基本设计思想;
(2)使用C 或C++语言,给出二叉树结点的数据类型定义;
(3)根据设计思想,采用C 或C++语言描述算法,关键之处给出注释。
【答案】(1)算法的基本思路是利用利用递归的思想来求解二叉树的带权路径长度,如果当前节点不是叶子节点,那么当前节点为根的树的带权路径长度便等于它的子树的带权路径长度之和,对于此函数要传入一个当前节点的树高的形参,那么递归调用孩子节点时只需要将这个形参加一即可。
第 3 页,共 24 页
(2)
typedef struct BiNode
(3)具体算法实现如下:
如果当前节点为空节点
//如果当前节点的左右孩子节点都为空,即当前节点为叶子节点,直接返回当前节点的
WPL
//如果当前节点不是叶子节点,则对当前节点的左右子树进行递归,返回左右子树WPL 之和
6. 分析ISAM 文件(IndeXed Sequential Access Methord)和VSAM 文件(Virtual storage Access Methord )的应用场合、优缺点等。
【答案】ISAM 是一种专为磁盘存取设计的文件组织形式,采用静态索引结构,对磁盘上的数据文件建立盘组、柱面、磁道三级索引。ISAM 文件中记录按关键字顺序存放,插入记录时需移动记录并将同一磁道上最后的一个记录移至溢出区,同时修改磁道索引项,删除记录只需在存储位置作标记,不需移动记录和修改指针。经过多次插入和删除记录后,文件结构变得不合理,需周期整理ISAM 文件。
VSAM 文件采用
动态索引结构,文件只有控制区间和控制区域等逻辑存储单位,与外存储
树,作为文件的索引部分可实现顺链查找和从
器中柱面、磁道等具体存储单位没有必然联系。VSAM 文件结构包括索引集、顺序集和数据集三部分,记录存于数据集中,顺序集和索引集构成根结点开始的随机查找。
优缺点:与ISAM 文件相比,VSAM 文件有如下优点:动态分配和释放存储空间,不需对文件进行重组;能保持较高的查找效率,且查找先后插入记录所需时间相同。因此,基于文件通常作为大型索引顺序文件的标准组织。
的VSAM
第 4 页,共 24 页