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

2018年天津职业技术师范大学信息技术工程学院813程序设计基础之数据结构考研强化五套模拟题

  摘要

一、填空题

1. 如某二叉树有20个叶结点,有30个结点仅有一个孩子,则该二叉树的总结点数为_____。

【答案】69

【解析】二叉树叶结点数为20, 则度为2的结点数为19, 所以总的结点数为20+19+30=69。

2. 对于一个具有n 个结点的二叉树,当它为一棵_____二叉树时具有最小高度, 当它为一棵_____时,具有最大高度。

【答案】完全;只有一个叶结点的二叉树

3. 一个字符串中_____称为该串的子串。

【答案】任意个连续的字符组成的子序列

4. 设广义表L =(( ),( )) ,则head(L)是_____tail(L)是_____L的长度是_____;深度是_____。

【答案】( );(( )) ;2;2

【解析】广义表的表头是表的第一个元素,表尾是除了第一个元素外其余的所有的元素构成的表;表的长度指表中元素的个数;表的深度指展开后括号的层数。

5. 从平均时间性能而言,_____排序最佳。

【答案】快速

【解析】快速算法的平均时间复杂度为nlogn 。

6. 遍历图的过程实质上是_____,广度优先遍历图的时间复杂度____;深度优先遍历图的时间复杂度_____,两者不同之处在于_____,反映在数据结构上的差别是_____。

【答案】查找顶点的邻接点的过程;0(n+e);0(n+e);访问顶点的顺序不同;队列和栈

【解析】广度优先遍历图使用队列这种数据结构,深度优先遍历图使用栈这种数据结构。

7. 设为哈夫曼树的叶结点数目,则该哈夫曼树共有_____个结点。 【答案】

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

8. 设T 是一棵结点值为整数的二叉排序树,A 是一个任意给定的整数。在下面的算法中,free_tree(T)在对二叉排序树丁进行后序遍历时释放二又排序树T 的所有结点

,首先在二叉排序树T 中查找值为A 的结点,根据查找情况分别进行如下

处理:(1)若找不到值为A 的结点,则返回根结点的地址(2)若找到值为A 的结点,则删除以此结点为根的子树,并释放此子树中的所有结点,若值为A 的结点是查找树的根结点,删除后变成空的二叉树,则返NULL ; 否则返回根结点的地址。

【答案】

9. 空格串是指_____,其长度等于_____。

【答案】由空格字符(ASCII值32) 所组成的字符串;空格个数

10.高度为h 的堆中,最多有_____元素,最少有_____个元素。 【答案】

。当最后一层只有

。 【解析】当这个堆构成的是满二叉树时,元素的个数最多,元素个数为一个元素时,此时堆的元素个数最少,元素个数为

二、单项选择题

11.已知字符串S 为“abaabaabacacaabaabcc ”, 模式串t 为“abaabc ”, 采用KMP 算法进行匹配, 第一次出现“失配”(

A.i=l, j=0

B.i=5, j=0

C.i=5, j=2

D.i=6, j=2

【答案】C

【解析】模式匹配(KMP)算法对普通的暴力匹配的改进在于:每当匹配过程中匹配失败时, 主串(本题为S) 的指针(i)不需要回溯, 而是利用已经得到的“部分匹配”的结果将模式串(t)向右“滑动”尽可能远的一段距离后, 继续进行比较。模式串“滑动”的距离是由模式串(t)本身决定的, 即t 的子串

) 时, i=j=5, 则下次开始匹配时, i 和j 的值分别是( )。

中前缀串和后缀串相等的最长长度。本题中第一次失配i=5, 字串为“abaab”, 其相等且最长的前后缀为“ab”, 一次下一个j=2。

12.下列序列中,( )是执行第一趟快速排序后所得的序列。 A. B. C. D.

【答案】C

【解析】快速排序将数据划分成两部分,其中一部分关键字比另一部分关键字小。

13.设被排序的结点序列共有N 个结点,在该序列中的结点已十分接近排序的情况下,用直接插入法、归并法和一般的快速排序法对其排序,这些算法的时间复杂性应为( )。 A. B. | C. D.

【答案】C

【解析】因为该序列中的结点己经十分接近排序的情况,对于直接插入法,大部分结点只需要直接插入后面即可,因此时间复杂度为O(N)。对于采用归并法,它是一种稳定的排序方法,它的时间复杂度为。对于一般的快速排序法,序列越接近有序,所需要的比较次数越多,此时的时间复杂度为。

14.已知小根堆为8, 15, 10, 21, 34, 16, 12, 删除关键字8之后需重建堆, 在此过程中, 关键字之间的比较数是( )。

A.1

B.2

C.3

D.4

【答案】C

【解析】堆排序中, 依次输出堆顶的最小值, 然后重新调整堆, 如此反复执行, 便得到一个有序序列。本题中, 删除堆顶元素8后将最后一个元素12置于堆顶, 然后调整堆:首先与15比较, 12小于15, 所以不用交换; 然后与10比较, 因为10小于12, 所以交换10和12的位置; 调整后12再与16比较, 12小于16, 调整堆过程结束。因此12共与15、10、16进行了三次比较。

15.假设某系统总线在一个总线周期中并行传输4字节信息,一个总线周期占用2个时钟周期,总线时钟频率为10MHz ,则总线带宽是( ).

A.10MB/s

B.20MB/S

C.40MB/S

D.80MB/S

【答案】B