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

2017年上海市培养单位上海生命科学研究院864程序设计之数据结构考研导师圈点必考题汇编

  摘要

一、填空题

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

【答案】

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

2. 无用单元是指_____,例_____

【答案】用户不再使用而系统没有回收的结构和变量;

3. 用循环链表表示的队列长度为n ,若只设头指针,则出队和入队的时间复杂度分别是_____和_____;若只设尾指针,则出队和入队的时间复杂度分别是_____和_____。

【答案】

【解析】队列的出队操作即删除队头的元素,队列的入队操作即在队尾添加元素,循环链表只设头指针,出队时,只要把头结点的下一个结点删除就好了,入队时,要把新的结点插入队尾,必须把队列遍历,找到队尾指针,才能插入。循环队列只设尾指针,出队时只要把为指针的下一个结点或者下下个结点删除即可,入队时,只要在尾指针的后面插入新的结点,并更新尾结点即可。

4. —棵深度为k 的平衡二叉树, 其每个非终端结点的平衡因子均为0,则该树共有_____个结点。

【答案】树。故结点个数为

【解析】每个非终端结点都是0表示该平衡二叉树没有高度落差。也就是说它是一棵满二叉

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

【答案】01122312

6. 求图的最小生成树有两种算法,_____算法适合于求稀疏图的最小生成树e

【答案】克鲁斯卡尔

【解析】克鲁斯卡尔算法是一种按权值的递增次序选择合适的边来构造最小生成树的方法,这种算法中,采用堆来存放边的集合,适合于边稀疏而顶点较多的图。

7. 当线性表的元素总数基本稳定,且很少进行插入和删除操作,但要求以最快的速度存取线性表中的元素时,应采用_____存储结构。

【答案】顺序

【解析】顺序存储结构的存取操作比较方便,但插入和删除操作不如链式存储结构方便,而且需要连续的存储空间,由于该线性表的元素总数基本稳定,而且很少进行插入删除操作,为了更快的存取元素,顺序表更合适。

8. 阅读下列程序,指出其功能,并写出空格处应填上的语句。

【答案】

【解析】本题是在哈希表ht[]中插入值为的元素,如该元素已在哈希表中,报告出错。

9. 文件可按其记录的类型不同而分成两类,即_____和_____文件。

【答案】操作系统文件;数据库

10.二叉树的前序序列和中序序列相同的条件是_____。

【答案】空树或任何结点至多只有右子树的二叉树

【解析】前序遍历的顺序为根左右,中序遍历的顺序为左根右,因此若中序遍历和前序遍历序列相同,则任何结点都没有左子树。

11.高度为4的3阶B-树中,最多有_____个关键字。

【答案】26

【解析】第4层是叶结点,1层至3层每个结点两个关键字,每个节点的关键字达到最大时,关键字最多。

12.设数组储,则元素为_____。

【答案】9174;8788

【解析】设一个元素的行标为i ,列标为j 。若以行序为主存储顺序,

则它的存储地址为

若以列序为主存储顺序,则它的存储地址为

的基地址为2000,每个元素占2个存储单元,若以行序为主序顺序存

的存储地址为_____;若以列序为主序顺序存储,则元素

的存储地址

二、选择题

13.在有向图的邻接表存储结构中,顶点V 在链表中出现的次数是( )。

A. 顶点V 的度 B. 顶点V 的出度 C. 顶点V 的入度 D. 依附于顶点V 的边数 【答案】B

【解析】在有向图中,第j 个链表中的结点个数只是顶点Vi 的出度,为求入度,必须遍历整个邻接表。因此顶点V 在链表中出现的次数是顶点V 的出度。

14.在双向链表指针P 的结点前插入一个指针q 的结点操作是( )。

A.

B.

C.

D. 【答案】C

15.对n 个记录的线性表进行快速排序为减少算法的递归深度,以下叙述正确的是( )。

A. 每次分区后,先处理较短的部分 B. 每次分区后,先处理较长的部分 C. 与算法每次分区后的处理顺序无关 D. 以上三者都不对 【答案】A

【解析】令递归函数为f ,第一次进行递归函数认为递归深度为1,以后从深度为n 的递归函数f 中再调用递归函数f ,此时深度为整个f 的最大深度为递归深度。

16.某计算机主存容量为64KB , 其中ROM 区为4KB , 其余为RAM 区,按字节编址。现要用2Kx8位的ROM 芯片和4Kx4位的RAM 芯片来设计该存储器,则需要上述规格的ROM 芯片数和RAM 芯片数分别是( )。

A.1、15 B.2、15