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

2017年北京师范大学教育学部894程序设计与数据结构考研题库

  摘要

一、填空题

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

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

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

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

【答案】提高查找速度

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

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

4. 在n 个顶点的非空无向图中,最多有_____个连通分量。

【答案】n

【解析】当n 个顶点之间没有边,都是孤立的顶点时,有n 个连通分量。

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

【答案】01122312

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

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

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

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

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

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

8. 阅读下列程序说明和裎序,填充程序中的_____。

【程序说明】本程序完成将二叉树中左、右孩子交换的操作。交换的结果如下所示(编科略)本程序采用非递归的方法,设立一个堆栈交换左、右子树的算法为:

(1)把根结点放入堆栈。

(2)当堆栈不空时,取出栈顶元素,交换它的左、右子树,并把它的左、右子树分别入栈。(3)重复(2)直到堆栈为空时为止。

存放还没有转换过的结点,它的栈顶指针为

(1)

{(2)

If ( (3) )

}

}} 【答案】

【解析】本题主要使用堆栈完成了二叉树左右子树交换的操作。首先根结点进栈,然后判断栈足否为空,如果不为空,则取栈顶元素,交换取出节点的左右指针。并将左右指针分别进桟,重复这一操作。完成二叉树左右孩子的交换。

9. 在单链表L 中,指针P 所指结点有后继结点的条件是_____

【答案】

【解析】指针所指节点的指针域所指向的元素非空,说明该指针所指节点有后继结点。

10.设二维数组A 的行和列的下标范围分别为和每个元素占2个单元,按行优先顺序存储,第一个元素的存储起始位置为b ,则存储位置为

【答案】

当其值为

处的元素为_____。

【解析】令这个元素的行标为i ,列标为j 。则它的存储位置是时,则i=2,j=3。

11.求最短路径的Dijkstra 算法的时间复杂度为_____。

【答案】

12.一个算法具有5个特性:_____、_____、_____、有零个或多个输入、有一个或多个输出。

【答案】有穷性;确定性;可行性

二、判断题

13.对于有n 个结点的二叉树,其高度为

【答案】×

【解析】例如n 结点的单枝树,高度就为n 。

14.有n 个数顺序(依次)入栈,出栈序列有Cn 种,( )

【答案】

15.在一个设有头指针和尾指针的单链表中,执行删除该单链表中最后一个元素的操作与链表的长度无关。( )

【答案】

【解析】必须从头指针开始,查找到尾指针所指结点的前驱结点的指针。

16.用希尔(Shell )方法排序时,若关键字的初始排序杂乱无序,则排序效率就低。( )

【答案】×

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

17.串是一种数据对象和操作都特殊的线性表。( )

【答案】

【解析】串是一种操作特殊的线性表,其特殊性主要体现在数据元素是一个字符。在内存中,一份文本都可以看做是一个字符串,而每一行都可以看做是其子串。

18.深度为k 的二叉树中结点总数小于等于( )

【答案】√

【解析】深度为K 的二叉树,当结点数最多时为满二叉树,此时结点数为

19.程序一定是算法。( )

【答案】

【解析】一个程序不一定满足有穷性。而算法是对问题的解,用程序设计语言来实现来描述,这时算法就是一个程序。

20.设栈采用顺序存储结构。若已有杂性为

( )

【答案】

( )

个元素入栈,则将第i 个元素入栈时,入栈算法的时间复

【解析】由于该栈采用顺序存储结构,时间复杂度应该为0(1)。