2017年闽南师范大学粒计算重点实验室916计算机专业基础之数据结构考研仿真模拟题
● 摘要
一、填空题
1. 设正文串长度为n ,模式串长度为m ,则串匹配的KMP 算法的时间复杂度为_____。
【答案】
2. 栈是_____的线性表,其运算遵循_____的原则。
;后进先出 【答案】操作受限(或限定仅在表尾进行插入和删除操作)
3. 二叉树由_____,_____,_____三个基本单元组成。
【答案】根结点;左子树;右子树
4. 设有一个空找,栈顶指针为1000H (十六进制),现有输入序列为1,2,3, 4, 5,经过PUSH ,PUSH , POP , PUSH , POP ,PUSH ,PUSH 之后,输出序列是_____,而栈顶指针值是_____。设栈为顺序栈,每个元素占4个字节。
【答案】23; 100CH
5. G 是一个非连通无向图,共有28条边,则该图至少有_____个顶点。
【答案】9
【解析】求该非连通无向图的最少顶点数,则该图为一个孤立的顶点和一个完全连通图。
6. 在下面的程序段中,对X 的赋值语句的时间复杂度为_____(表示为n 的函数)。
【答案】1+(1+2)+(1+2+3)+"•+(l +2+... +n )=n(n +1)(n +2)/6,即
【解析】当i=l时,赋值语句就被执行了一次。当i=2时,赋值语句被执行了1+2次。当i=3时,赋值语句被执行了1+2+3次。可以推出赋值语句总共被执行了1+(1+2)+(1+2+3)+…+(l +2+... +n )=n(n +1)(n +2)/6次。
7. N 个顶点的连通图用邻接矩阵表示时,该矩阵至少有_____个非零元素。
【答案】2(N-1)
【解析】所谓连通图一定指的是无向图,有向图会称作强连通图。连接N 个顶点,至少需要N-1条边就可 以了。由于无向图的每一条边同时关联了两个顶点。因此用邻接矩阵表示时,该矩阵至少有2(N-1)个非零元素。
8. 文件可按其记录的类型不同而分成两类,即_____和_____文件。
【答案】操作系统文件;数据库
9. 设数组储,则元素为_____。
【答案】9174;8788
【解析】设一个元素的行标为i ,列标为j 。若以行序为主存储顺序,
则它的存储地址为
若以列序为主存储顺序,则它的存储地址为
10.
每一棵树都能唯一地转换为它所对应的二叉树。若已知一棵二叉树的前序序列是中序序列是前庁序列是_____。
【答案】前序是
。
【解析】树的抑序序列对应二叉树的前序序列. 该二叉树转换成森林吋含三棵树. 其第一棵树的
.
的基地址为2000,每个元素占2个存储单元,若以行序为主序顺序存
的存储地址为_____;若以列序为主序顺序存储,则元素
的存储地址
,则它的后庁序列是_____。设上述二叉树是由某棵树转换而成,则该树的
二、选择题
11.设计一个判别表达式中左、右括号是否配对出现的算法,采用( )数据结构最佳。
A. 线性表的顺序存储结构 B. 队列
C. 线性表的链式存储结构 D. 栈 【答案】D
【解析】用栈更合适,如果是左括号,进找;如果是右括号,看栈顶是不是左括号,如果是, 则左括号出栈;否则不配对(可以直接结束算法)。处理完所有符号号,如果栈为空则配对成功。
12.稀疏矩阵一般的压缩存储方法有两种,即( )。
A. 二维数组和三维数组 B. 三元组和散列 C. 三元组和十字链表 D. 散列和十字链表 【答案】C
【解析】稀疏矩阵一般的压缩方法为三元组表和十字链表。三元组表就是将非零元素及其对应的行和列构成一个三元组(行标,列标,值)。十字链表相比三元组表而言,主要是对每个结点增加了两个链域。如果数组经常运算时,会产生大量数据元素的移动,此时,采用链表存储结构
更为恰当。
13.在下述结论中,正确的有( )。
①只有一个结点的二叉树的度为0; ②二叉树的度为2; ③二叉树的左右子树可任意交换,④深度为K 的完全二叉树的结点个数小于或等于深度相同的满二叉树。
A. ①②③ B. ②③④ C. ②④ D. ①④ 【答案】D
【解析】只有根节点的二叉树的度为0,二叉树的左右子树隐含着他们的位置关系。因此,②③均错。
14.某文件占10个磁盘块,现要把该文件磁盘块逐个读入主存缓冲区,并送用户区进行分析。假设一个缓冲区与一个磁盘块大小相同,
把一个磁盘块读人缓冲区的时间为传送到用户区的时间是
CPU 对一块数据进行分析的时间为
构下,读人并分析完该文件的时间分别是( )。
A. B. C. D. 【答案】B
【解析】这是一个简单的缓冲区的问题。由于缓冲区的访问是互斥的,所以对单一缓冲区,从磁盘写入和读 出到用户区的操作必须串行执行,也就是要保证互斥操作。而CPU 对数据的分析与从用户区读数据也是需要互斥操作,但是CPU 分析与从磁盘写入缓冲区的操作可以并行。从本题看,由于分析所用的时间小于从磁盘写入 缓冲区的时间,因此,CPU 会空闲。单缓冲区的总时间=(磁盘写入缓冲区时间+缓冲区读出时间
)
处理最后一块数据的时
间
当采用双缓冲区时,每块缓冲区的操作也必须满足互斥操作,但是,
对两块缓冲区的操作却可以并行,所以,当第一个缓冲区写满以后,磁盘紧接着写另一个缓冲区,同时,前一个已经满了的缓冲区被读出到用户区,并立即进行CPU 的数据分析。读出操作和数据分析必须互斥进行,故从时间上看,当数据被读出并分析后,恰好另一个缓冲区也写满了,可以立即进行读出数据到用户区并 进行数据分析。两块缓冲区交替进行读写,直到数据分析完毕,因此,总时间=(磁盘写入缓冲区时间)读出最后一块数据时间+CPU分析最后一块数据时间
=
15.若一个用户进程通过read 系统调用读取一个磁盘文件中的数据,则下列关于此过程的叙述中,正确的是( )。
I. 若该文件的数据不在内存,则该进程进入睡眠等待状态;II. 请求read 系统调用会导致CPU
将缓冲区的数据
,在单缓冲区和双缓冲区结
相关内容
相关标签