2018年新疆维吾尔自治区培养单位新疆天文台862计算机学科综合(非专业)之数据结构考研核心题库
● 摘要
一、填空题
1. 若不考虑基数排序,则在排序过程中,主要进行的两种基本操作是关键字的 _____和记录的_____。
【答案】比较;移动
2. 求最短路径的Dijkstra 算法的时间复杂度为_____。 【答案】
中,其下标值最大的分支结点为_____。 3. 设有N 个结点的完全二叉树顺序存放在向量
【答案】
【解析】最大的分支结点是最后一个叶子结点的父结点。
4. 如某二叉树有20个叶结点,有30个结点仅有一个孩子,则该二叉树的总结点数为_____。
【答案】69
【解析】二叉树叶结点数为20, 则度为2的结点数为19, 所以总的结点数为20+19+30=69。
5. 执行顺序查找时,存储方式可以是_____,折半查找时,要求线性表_____,分块查找时要求线性表_____,而哈希表的查找,要求线性表的存储方式是_____。
【答案】顺序存储或链式存储;顺序存储且有序;块内顺序存储,块间有序;散列存储
6. 对于一个具有n 个结点的二叉树,当它为一棵_____二叉树时具有最小高度, 当它为一棵_____时,具有最大高度。
【答案】完全;只有一个叶结点的二叉树
7. 以下程序的功能是实现带附加头结点的单链表数据结点逆序连接,请填空完善之。
h 为附加头结点指针
(_____)
_____;
【答案】(1)p!=NULL //链表未到尾就一直进行
(2)q //将当前结点作为头结点后的第一元素结点插入
8. 空格串是指_____,其长度等于_____。
【答案】由空格字符(ASCII值32) 所组成的字符串;空格个数
9.
线性表
【答案】(n﹣1)/2
【解析】删除第一个元素需要移动n ﹣1次,以此类推,删除最后一个元素需要移动0次。平均次数为(n﹣l)*n/n/2=(n﹣l)/2。
10.对单链表中元素按插入方法排序的C 语言描述算法如下,其中L 为链表头结点指针。请填充算法中标出的空白处,完成其功能。
:_____:
{_____)
(_____、
:_____;_____;p =u ;
【答案】(1)L﹣>next =NULL //置空链表,然后将原链表结点逐个插入到有序表中
(2)p!=NULL //当链表尚未到尾,p 为工作指针
(3)q!=NULL //查P 结点在链表中的插入位置,这时q 是工作指针
(4)p﹣>next =r ﹣>next //将P 结点链入链表中
(5)r﹣>next =p //r是q 的前驱,u 是下个待插入结点的指针
用数组表示,假定删除表中任一元素的概率相同,则删除一个元素平均需要移动元素的个数是_____。
二、单项选择题
11.对下图进行拓扑排序, 可以得到不同的拓扑序列的个数是( )。
图
A.4
B.3
C.2
D.1
【答案】B
【解析】拓扑排序的步骤为:
(1)在有向图中选一个没有前驱的顶点并且输出它;
(2)从图中删除该顶点和以它为尾的弧。重复上述两步, 直至全部顶点均已输出。由于没有前驱的顶点可能不唯一, 所以拓扑排序的结果也不唯一。题中所给图有三个不同的拓扑排序序列, 分别为abced , abecd , aebcd 。
12.对于循环队列( )。
A. 无法判断队列是否为空
B. 无法判断队列是否为满
C. 队列不可能满
D. 以上说法都不是
【答案】D
【解析】循环队列也会出现队列满的情况,并且循环队列也可以判断是否为空或满。至少可以通过两种方法进行判断:①另设一个布尔变量来区别队列是空还是满;②队满时,
(rear+1)
font 。
13.若x=103, y=-25测下列表达式采用8位定点补码运算实现时, 会发生溢出的是( )
A.x+y
B.-x+y
C.x-y
D.-x-y
【答案】C
答:8位定点补码能表示的数的范围为:-128~127
A 结果为78, B 结果为-128, D结果为-78都在此范围内, 只有C 结果128超过了8位定点补码能表示的数的范围, 会发生溢出
14.进程P0和P1的共享变量定义及若进程P0和P1访问临界资源的类C 伪代码实现如下:
相关内容
相关标签