2018年苏州大学计算机科学与技术学院839管理信息系统与数据结构之数据结构考研强化五套模拟题
● 摘要
一、填空题
1. 设数组
数组中任一元素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。
2. 下面程序的功能是用递归算法将一个整数按逆序存放到一个字符数组中。如123存放成321。请填空:
(_____i);
=
_____.
_____
【答案】a +l ;n%10
【解析】通过递归算法,首先找到最高位的值,将其放到str 对应的数组中,依次反向获取从高位到地位的值,将其放到数组中,完成了将整数逆序放到一个字符数组中。
3. 设正文串长度为n ,模式串长度为m ,则串匹配的KMP 算法的时间复杂度为_____。
【答案】O(m+n)
4. 实现字符串拷贝的函数strcpv 为:
(_____)
【答案】s++=*t++或(*s++=*t++)!='\0’
5. 阅读下列程序,指出其功能,并写出空格处应填上的语句。
【答案】
【解析】本题是在哈希表中插入值为item 的元素,如该元素已在哈希表中,报告出错。 6. 每一棵树都能唯一地转换为它所对应的二叉树。若已知一棵二叉树的前序序列是BEFCGDH ,中序序列是FEBGCHD ,则它的后序序列是_____。设上述二叉树是由某棵树转换而成,则该树的前序序列是_____
【答案】FEGHDCB ;BEF
【解析】树的前序序列对应二叉树的前序序列,该二叉树转换成森林时含三棵树,其第一棵树的前序是BEF 。
7. 设有一个10阶对称矩阵A 采用压缩存储方式(以行为主序存储:a 11=l) , 则a 85的地址为_____。
【答案】33
【解析】设存储的元素的行标为i ,列标为j 。若i >=j ,则
的地址为l +2+... +i ﹣l +j
=i(i﹣l)/2+j 。若i <j 。则的地址为j(j﹣l)/2+i 。将i =8,j =5代入得33。
8. 以下是用类C 语言写出的算法,该算法将以二叉链表存储的二叉树中的叶结点按从左到右的顺序链成一个带头结点的双向循环链表,链接时,结点的Lchild 域作为前链域,指向结点的直接前驱,结点的Rchild 域作为后链域,指向结点的直接后继。算法中,使用一个顺序栈stack , 栈顶指针为top ,P ,t 为辅助指针,head 为双向循环链表的头指针。试填充算法中的空格,使算法完整。
【答案】
9. 下面描述的是一种构造最小生成树算法的基本思想。设要处理的无向图包括n 个顶点
用相邻矩阵A 表示,边的权全是正数。请在下列划线处填上正确叙述。
(1)若
是边,则
的值等于_____,若
不是边,则A(i, j) 的值是一个比任何
置
边的权_____,矩阵的对角线元素全为0。
(2)构造最小生成树过程中,若顶点已包括进生成树,就把相邻矩阵的对角线元素成_____,若
【答案】(1)
已包括进生成树,就把矩阵元素
置成_____。
(3)算法结束时,相邻矩阵中_____的元素指出最小生成树的_____。
边上的权值;都大的数;(2)1; 负值;(3)为负;边
10.下列程序是快速排序的非递归算法,请填写适当的语句,完成该功能。