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

2018年合肥工业大学计算机与信息学院850计算机科学与技术学科专业基础综合之数据结构考研基础五套测试题

  摘要

一、填空题

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

【答案】69

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

2. 当两个栈共享一存储区时,栈利用一维数组stack(1,,1) 表示,两栈顶指针为top[l]与top[2],则当栈1空时,top[l]为_____,栈2空时,top[2]为_____,栈满时为_____。

【答案】0;n+1;top[l]+l=top[2]

【解析】共享栈的栈底在共享存储区的两端,当栈满时栈顶相邻。

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

(_____i);

_____.

_____

【答案】a +l ;n%10

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

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

【答案】O(1);O(n);O(1);O(1)

【解析】队列的出队操作即删除队头的元素,队列的入队操作即在队尾添加元素,循环链表只设头指针,出队时,只要把头结点的下一个结点删除就好了,入队时,要把新的结点插入队尾,

必须把队列遍历,找到队尾指针,才能插入。循环队列只设尾指针,出队时只要把为指针的下一个结点或者下下个结点删除即可,入队时,只要在尾指针的后面插入新的结点,并更新尾结点即可。

5. 有向图G=(V, E) ,其中

权d 。E(G)为

,则从源点0到顶点3的最短路径长度是_____,经过的中间顶点是_____。

【答案】50;4

6. 设有一个空枝,栈顶指针为1000H(十六进制) ,现有输入序列为1,2,3,4,5,经过PUSH ,PUSH ,POP ,PUSH ,POP ,PUSH ,PUSH 之后,输出序列是_____,而栈顶指针值是_____。设栈为顺序找,每个元素占4个字节。

【答案】23;100CH

7. 在下面的程序段中,对X 的赋值语句的时间复杂度为_____ (表示为n 的函数) 。

【答案】1+(1+2) +(1+2+3) +…+(l+2+…+n) =n(n+1)(n+2)/6,即O(n)

【解析】当i =l 时,赋值语句就被执行了一次。当i =2时,赋值语句被执行了1+2次。当i =3时,赋值语句被执行了1+2+3次。...... 可以推出赋值语句总共被执行了1+(1+2) +(1+2+3) +…+(l+2+... +n) =n(n+1)(n+2)/6次。

8. 已知二叉排序树的左右子树均不为空,则_____上所有结点的值均小于它的根结点值,_____上所有结点的值均大于它的根结点的值。

【答案】左子树;右子树

【解析】二叉排序树(binary sort tree)或者是一棵空树,或者是具有下列性质的二叉树:①若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值;②若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值;③它的左、右子树也分别为二叉排序树。

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

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

10.N 个顶点的连通图用邻接矩阵表示时,该矩阵至少有_____个非零元素。 【答案】

【解析】所谓连通图一定指的是无向图,有向图会称作强连通图。连接N 个顶点,至少需要

,用三元组表示弧及弧上的

N -1条边就可以了。由于无向图的每一条边同时关联了两个顶点。因此用邻接矩阵表示时,该矩阵至少有2(N-1) 个非零元素。

二、判断题

11.对磁带机而言,ISAM 是一种方便的文件组织方法。( )

【答案】×

【解析】ISAM 是一种专为磁盘存取设计的文件组织方式。

12.设尾指针的循环链表表示队列,则入队和出队算法的时间复杂度均为O(1)( )。

【答案】 √

【解析】入队和出队操作分别在队尾和队头进行,设有尾指针的循环链表对头和尾元素的操作的时间复杂度是O(1)。

13.队列逻辑上是一个下端和上端既能增加又能减少的线性表。( )

【答案】 ×

【解析】队列只在下端(队尾) 增加,在上端(队头) 减少。

14.外部排序是把外存文件调入内存,可利用内部排序的方法进行排序,因此排序所花的时间取决于内部排序的时间。( )

【答案】×

【解析】外部排序方法:按可用内存大小,将外存上含n 个记录的文件分成若干长度为2的子文件或段,依次读入内存并利用有效的内部排序方法对它们进行排序,并将排序后得到的有序子文件重新写入外存,通常称这些有序子文件为归并段或顺串(run)。对这些归并段进行逐趟归并,使归并段(有序的子文件) 逐渐由小至大,直至得到整个有序文件为止。一般情况下,外部排序所需总的时间=内部排序(产生初始归并段) 所需的时间m*tIS+外存信息读写的时间

需的时间。

15.十字链表是无向图的一种存储结构。( )

【答案】×

【解析】十字链表是有向图的另一种链式存储结构。在十字链表中,对应于有向图的每条弧有一个结点,对应于每个顶点也有一个结点。类似于邻接表是无向图的一种链式存储结构。

16.归并排序辅助存储为O(1)( )

【答案】×

【解析】归并排序的辅助存储是O Cn)o

内部归并所