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

2017年北京物资学院物联网工程与技术911计算机学科专业基础综合之数据结构考研题库

  摘要

一、填空题

1. 下面程序的功能是用递归算法将一个整数按逆序存放到一个字符数组中。如123存放成321。请填空:

【答案】

【解析】通过递归算法,首先找到最高位的值,将其放到str 对应的数组中,依次反向获取从高位到地位的值,将其放到数组中,完成了将整数逆序放到一个字符数组中。

2. 设用希尔排序对数组{98,36,-9,0,47,23,1,8,10,7}进行排序,给出的步长(也称 增量序列)依次是4,2,1则排序需_____趟,写出第一趟结束后,数组中数据的排列次序_____。

【答案】3; (10,7,-9,0,47,23,1,8,98,36)

3. 已知二维数组

为1000的连续存储区域时

【答案】1196

【解析】设元素的行标为i ,列标为j 。则它的存储位置为:

4. 在双向循环链表中,向P 所指的结点之后插入指针f 所指的结点,其操作是_____、_____、_____、_____。

【答案】

5. 对单链表中元素按插入方法排序的C 语言描述算法如下,其中L 为链表头结点指针。请填充算法中标出的空白处,完成其功能。

第 2 页,共 63 页

中每个元素占4个单元,在按行优先方式将其存储到起始地址的地址是:_____。

【答案】(1)(2)(3)(4)(5)

置空链表,然后将原链表结点逐个插入到有序表中

当链表尚未到尾,p 为工作指针

查P 结点在链表中的插入位置,这时q 是工作指针

将P 结点链入链表中

是q 的前驱,u 是下个待插入结点的指针

6. 在进行入栈运算时应先判别栈是否_____:在进行出栈运算时应先判别栈是否_____:当栈中元素为n 个,进行入栈运算时发生上溢,则说明该栈的最大容量为_____。为了增加内存空间的利用率和减少溢出的可能性,由两个栈共享一片连续的空间时,应将两栈的_____分别设在内存空间的两端,这样只有当_____时才产生溢出。

【答案】满;空;n ; 栈底;两栈顶指针相邻(即值之差的绝对值为1)

7. 如果按关键码值递増的顺序依次将关键码值插入到二叉排序树中,则对这样的二叉排序树检索时,平均比较次数为_____。

【答案】

【解析】如果关键码是排好序的,构建二叉排序树就会形成一个单支树,它的查找效率和顺 序查找效率一样为

8. 有五个数据依次入栈:1,2, 3, 4, 5。在各种出栈的序列中,以3, 4先出栈的序列有_____。(3在4之前出栈)

【答案】3个

【解析】以3, 4先出栈的序列有34521、34215、34251共3个。

9. 起始地址为480,大小为8的块,其伙伴块的起始地址是_____;若块大小为32,则其伙伴块的起始地址为_____。

【答案】

【解析】起始地址为P ,大小为的内存块,其伙伴块的起始地址计算公式如下:

根据上述公式起始地址就为488。

第 3 页,共 63 页

10.检索是为了在文件中寻找满足一定条件的记录而设置的操作。检索可以按_____检索。也可以按_____检索;按_____检索又可以有_____检索和_____检索。

【答案】关键字;记录号;记录号;顺序;直接

二、选择题

11.在下面的排序方法中,辅助空间为

A. 希尔排序 B. 堆排序 C. 选择排序 D. 归并排序 【答案】D

12.某时刻进程的资源使用情况如下表所示

的是( )。

此时的安全序列是( )。

A.P1, P2, P3, P4 B.P1, P3, P2, P4 C.P1, P4, P3, P2 D 不存在 【答案】D

【解析】典型的死锁避免算法,银行家算法的应用。银行家算法是操作系统中的一个重点知识单元,考生对此应该非常熟悉,本题并无难点。分析一下下表,可以看到,经过P1, P4的运行以后,可用资源是2, 2,1,而 P2, P3所需资源分别是1,3, 2和1,3,1。所以剩余资源已经不够P2或P3的分配,亦即找不到能够安全运行的序 列,因此此时是处于不安全状态,所以不存在这样的安全序列。

第 4 页,共 63 页