2018年浙江工业大学教育科学与技术学院885数据结构(C语言版)之数据结构考研仿真模拟五套题
● 摘要
一、填空题
1. 在循环队列中,队列长度为n ,存储位置从0到,n ﹣1编号,以rear 指示实际的队尾元素,现要在此队列中插入一个新元素,新元素的位置是_____。
【答案】
2. 若不考虑基数排序,则在排序过程中,主要进行的两种基本操作是关键字的 _____和记录的_____。
【答案】比较;移动
3. 模式串
【答案】01122312
4. 在下面的程序段中,对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次。
5. 下面程序的功能是用递归算法将一个整数按逆序存放到一个字符数组中。如123存放成321。请填空:
(_____i);
=
_____.
_____
第 2 页,共 76 页
的next 函数值序列为_____。
【答案】a +l ;n%10
【解析】通过递归算法,首先找到最高位的值,将其放到str 对应的数组中,依次反向获取从高位到地位的值,将其放到数组中,完成了将整数逆序放到一个字符数组中。
6. 设二维数组A 的行和列的下标范围分别为[0:8]和[0:10],每个元素占2个单元,按行优先顺序存储,第一个元素的存储起始位置为b ,则存储位置为b+50处的元素为_____。
【答案】A[2][3]
【解析】令这个元素的行标为i ,列标为j 。则它的存储位置是(ll*i+j +l ﹣l)*2+b 。当其值为b +50时,则i =2,j =3。
7. 对n 个记录的表进行简单选择排序,所需进行的关键字间的比较次数为_____。
【答案】n (n-1) /2
【解析】第一次需要n -1次比较,第i 此需要n -i 此比较,所以共需要
8. 在一个无向图的的邻接表中,若表结点的个数是m ,则图中边的条数是_____条。
【答案】
。
【解析】对于无向图,在邻接表中,如果存在n 条边,则会有2n 个表结点。
9. 以下是用类C 语言写出的算法,该算法将以二叉链表存储的二叉树中的叶结点按从左到右的顺序链成一个带头结点的双向循环链表,链接时,结点的Lchild 域作为前链域,指向结点的直接前驱,结点的Rchild 域作为后链域,指向结点的直接后继。算法中,使用一个顺序栈stack , 栈顶指针为top ,P ,t 为辅助指针,head 为双向循环链表的头指针。试填充算法中的空格,使算法完整。
【答案】
第 3 页,共 76 页
10.假定查找有序表
【答案】
中每个元素的概率相等,则进行折半查找时的平均查找长度为_____。
【解析】折半查找时每个的次数如表所示:
表
平均查找次数为
。
二、单项选择题
11.若一棵完全二叉树有768个结点, 则该二叉树中叶结点的个数是( )。
A.257 B.258 C.384 D.385
【答案】C
【解析】由
和
可知,
, 即
, 显然
则
384, 所以二叉树的叶结点个数是384。
还可以根据完全二叉树的另一个性质:
最后一个分支结点的序号为384, 而叶子结点的个数为。(表示不大于x 的最大整数, 比如
12.连续存储设计时,存储单元的地址( )。
A. 一定连续 B. 一定不连续 C. 不一定连续
D. 部分连续,部分不连续 【答案】A
【解析】连续存储是指数据的物理存储相连,即存储单元的地址是连续的。
13.设与某资源相关联的信号量初值为3,当前为1,若M 表示该资源的可用个数,N 表示等待该资源的进程数,则M ,N 分别是( ).
A.0、1 B.1、0 C.1、2 D.2、0 【答案】B
【解析】信号量初值是3表示资源数有3个,当前为1表示已经用掉2个,剩余可用的资源数就只有1个了,由于资源有剩余,可见没有其他进程等待使用该资源,故进程数为0.
第 4 页,共 76 页
, 故非叶子结点数为
) 。
相关内容
相关标签