当前位置:问答库>考研试题

2018年武汉工程大学计算机科学与工程学院835数据结构之数据结构教程考研核心题库

  摘要

一、单项选择题

1. 在含有n 个关键字的小根堆(堆顶元素最小) 中,关键字最大的记录有可能存储在( )位置上。 A. B.

C.1 D.

【答案】D

【解析】小根堆中,关键字最大的记录只能在叶结点上,故不可能在小于等于Ln/2」的结点上。

2. 对于循环队列( )。

A. 无法判断队列是否为空

B. 无法判断队列是否为满

C. 队列不可能满

D. 以上说法都不是

【答案】D

【解析】循环队列也会出现队列满的情况,并且循环队列也可以判断是否为空或满。至少可以通过两种方法进行判断:①另设一个布尔变量来区别队列是空还是满;②队满时,

(rear+1)

font 。

3. 一个具有1025个结点的二叉树的高h 为( )。

A.11

B.10

C.11至1025之间

D.10至1024之间

【答案】C

【解析】当一棵树是完全二叉树时,其高度最低,此时高度为11,当一棵树的结点在一条线上时,此时最高,这时二叉树的高度是1025。

4. 某机器有一个标志寄存器, 其中有进位/借位标志CF 、零标志ZF 、符号标志SF 和溢出标志OF , 条件转移指令bgt(无符号整数比较大于时转移) 的转移条件是( )。

A.CF+OF=0

B.SF+ZF=0

C.CF+ZF=0

D.CF+SF=0

【答案】C

【解析】判断无符号整数A>B成立, 满足的条件是结果不等于0, 即零标志ZF=0, 且不发生进位, 即进位/借位标志CF=0。所以正确选项为C 。其余选项中用到了符号标志SF 和溢出标志OF , 显然可以排除掉。

二、综合题

5. 试比较顺序文件、索引非顺序文件、索引顺序文件、哈希文件的存储代价,检索、插入、删除记录时的优点和缺点。

【答案】(1)顺序文件只能顺序查找,优点是批量检索速度快,不适于单个记录的检索。顺序

,文件不能像顺序表那样插入、删除和修改,因文件中的记录不能象向量空间中的元素那样“移动”

只能通过复制整个文件实现上述操作。

(2)索引非顺序文件适合随机存取,不适合顺序存取,因主关键字未排序,若顺序存取会引起磁头频繁移动。索引顺序文件是最常用的文件组织,因主文件有序,既可顺序存取也可随机存取。索引非顺序文件是稠密索引,可以“预查找”,索引顺序文件是稀疏索引,不能“预查找”,但由于索引占空间较少,管理要求低,提高了索引的查找速度。

(3)散列文件也称直接存取文件,根据关键字的哈希函数值和处理冲突的方法,将记录散列到外存上。这种文件组织只适用于像磁盘那样的直接存取设备,其优点是文件随机存放,记录不必排序,插入、删除方便,存取速度快,无需索引区,节省存储空间。缺点是散列文件不能顺序存取,且只限于简单查询。经多次插入、删除后,文件结构不合理,需重组文件,这很费时。

6. 文件存储结构的基本形式有哪些? 一个文件采用何种存储结构应考虑哪些因素?

【答案】文件的基本组织方式有顺序组织、索引组织、散列组织和链组织,常用的结构有顺序结构、索引结构、散列结构。

(1)顺序结构,相应文件为顺序文件,其记录按存入文件的先后次序顺序存放。顺序文传本质上就是顺序表。若逻辑上相邻的两个记录在存储位置上相邻,则为连续文件;若记录之间以指针相链接,则称为串联文件。顺序文件只能顺序存取,要更新某个记录,必须复制整个文件。顺序文件连续存取的速度快,主要适用于顺序存取,批量修改的情况。

(2)带索引的结构,相应文件为索引文件。索引文件包括索引表和数据表,索引表中的索引项包括数据表中数据的关键字和相应地址,索引表有序,其物理顺序体现了文件的逻辑次序,实现了文件的线性结构。索引文件只能是磁盘文件,既能顺序存取,又能随机存取。

(3)散列结构,也称计算寻址结构,相应文件称为散列文件,其记录是根据关键字值经哈希函

数计算确定其地址,存取速度快,不需索引,节省存储空间。不能顺序存取,只能随机存取。

文件采用何种存储结构应综合考虑各种因素,如:存储介质类型、记录的类型、大小和关键字的数目以及对文件作何种操作。

7. 三个进程PI 、P2, P3互斥使用一个包含N(N>0) 个单元的缓冲区。P1每次用produce ( )生成一个正整数并用put ( )送入缓冲区某一空单元中; P2每次用getodd ( )从该缓冲区中取出一个奇数并用countodd ( )统计奇数个数;P3每次用geteven ( )从该缓冲区中取出一个偶数并用counteven ( )统计偶数个数。请用信号量机制实现这三个进程的同步与互斥活动,并说明所定义信号量的含义。要求用伪代码描述。

【答案】定义信号量S1控制P1与P2之间的同步;S2控制P1与P3之间的同步;empty 控制生产者与消费者之间的同步;mutex 控制进程间互斥使用缓冲区,程序如下:

( )

//并发进程

//生产者进程

//等待调度,

//生产者生产数

. //有无空何

'

//能否进人缓冲区

//放置数字

//释放缓冲区

//是否偶数

//偶数信号量加

1

//否则奇数信号量加

1

//消费者进程

1

//有无奇数

//能否进入缓冲区

( ) //取奇数

//释放缓冲区

//空间加

1

//计算奇数个数