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

2018年中国地质大学(武汉)计算机学院952软件综合之数据结构考研核心题库

  摘要

一、填空题

1. 下列程序是快速排序的非递归算法,请填写适当的语句,完成该功能。

a 中存放待排序的关键字

【答案】

【解析】快速排序(quick sort)的基本思想是,通过一趟排序将待排记录分割成独立的两部分,其中一部分记录的关键字均比另一部分记录的关键字小,则可分别对这两部分记录继续进行排序,以达到整个序列有序。

2. 设为哈夫曼树的叶结点数目,则该哈夫曼树共有_____个结点。

【答案】

【解析】哈夫曼树只有度为0和2的节点。

3. 建立索引文件的目的是_____。

【答案】提高查找速度

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

【答案】480+8=488,480-32=448

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

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

5. 深度为H 的完全二叉树至少有_____个结点:至多有_____个结点; H 和结点总数N 之间的关系是_____。

【答案】

6. 根据线性表的链式存储结构中每一个结点包含的指针个数,将线性链表分成_____和_____;而又根据指针的连接方式,链表又可分成_____和_____。

【答案】单链表;双链表;(动态) 链表;静态链表

【解析】线性表的链式存储结构根据每个结点包含的指针个数分为单链表和双链表,单链表只包含一个指针,指向后续元素,双链表包括两个指针,指向前一个元素和后续元素。根据指针的连接方式,链表可分为动态链表和静态链表。静态链表的指针指向下一个元素的编号,动态链表的指针指向下一个元素的物理位置。

7. 模式串的next 函数值序列为_____。

【答案】01122312

8. 对于给定的元素,可以构造出的逻辑结构有_____,_____,_____,_____四种。

【答案】集合;线性结构;树形结构;图状结构(网状结构)

9. 外排序的基本操作过程是_____和_____。

【答案】生成有序归并段(顺串) ;归并

10.设单链表的结点结构为(data,next) ,next 为指针域,已知指针px 指向单链表中data 为x 的结点,指针py 指向data 为y 的新结点,若将结点y 插入结点x 之后,则需要执行以下语句: _____;_____;

【答案】py ﹣>next =px ﹣>next ;px ﹣>next =py

11.关键码序列(Q,H ,C ,Y ,Q ,A ,M ,S ,R ,D ,F ,X) ,要按照关键码值递增的次序进行排序,若采用初始步长为4的希尔排序法,则一趟扫描的结果是_____; 若采用以第一个元素为分界元素的快速排序法,则扫描一趟的结果是_____。

【答案】(Q,A ,C ,S ,Q ,D ,F ,X ,R ,H ,M ,Y) ; (F,H ,C ,D ,a ,A ,M ,Q ,R ,S ,Y ,X)

【解析】希尔排序的基本思想是:先将整个待排记录序列分割成为若干子序列分别进行直接插入排序,待整个序列中的记录“基本有序”时,再对全体记录进行一次直接插入排序。

快速排序(quick sort) 的基本思想是,通过一趟排序将待排记录分割成独立的两部分,其中一部分记录的关键字均比另一部分记录的关键字小,则可分别对这两部分记录继续进行排序,以达到整个序列有序。

12.设数组

数组中任一元素A[i,j]均占内存48个二进制位,从首地址2000开

始连续存放在主内存里,主内存字长为16位,那么

(1)存放该数组至少需要的单元数是_____;

(2)存放数组的第8列的所有元素至少需要的单元数_____; (3)数组按列存储时,元素A[5,8]的起始地址是_____。 【答案】270;27;2204

【解析】数组的元素个数为9*10=90,因为每个元素占内存48个二进制位,即6个字节。故总需要90*6=540个字节,因为主内存字长为16位,即2个字节,所以至少需要540/2=270个单元数。第8列有9个元素,共占9*6=54个字节,因此至少需要54/2=27个单元数。由题知,每个元素占3个单元。按列存储时,A[5,8]的起始地址为2000+[(8﹣1)*9+(5﹣0)]*3=2204。

二、单项选择题

13.主机甲与主机乙之间已建立一个TCP 连接, 主机甲向主机乙发送了3个连续的TCP 段, 分别包含300字节、400字节和500字节的有效载荷, 第3个段的序号为900。若主机乙仅正确接收到第1和第3个段, 则主机乙发送给主机甲的确认序号是( )。

A.300 B.500 C.1200 D.1400 【答案】B

【解析】本题考查TCP 的确认机制, TCP 首部的序号字段是指本报文所发送的数据的第一个字节的序号。本题中首先根据第3个段的序号为900, 可以得出第2个段的序号为500, 第1个段的序号为200, 这里主机乙仅正确接收了第1段和第3段, 这意味着第2段丢失, 需要超时重传, 因此主机乙发送给主机甲的确认序号, 也就是此时接收端期望收到的下一个数据包中第一个字节的序号应该是第二段的第一个字节的序号, 也就是500, 因此答案是B 。