2017年浙江工业大学教育科学与技术学院885数据结构(C语言版)之数据结构考研导师圈点必考题汇编
● 摘要
一、填空题
1. —棵有个结点的满二叉树有_____个度为1的结点、有_____个分支(非终端)结点和_____个叶子,该满二叉树的深度为_____。
【答案】
或
【解析】满二叉树没有度为1的结点,度为0的结点等于度为2的结点个数+1。
2. 当两个栈共享一存储区时,栈利用一维数组表示,两栈顶指针为当栈1空时
,
【答案】
为_____,栈2空时
,
为_____,栈满时为_____。
则
【解析】共享栈的栈底在共享存储区的两端,当栈满时栈顶相邻。
3. 在单链表中设置头结点的作用是_____。
【答案】方便运算
4. 以下程序的功能是实现带附加头结点的单链表数据结点逆序连接,请填空完善之。
【答案】(1)链表未到尾就一直进行
(2)
将当前结点作为头结点后的第一元素结点插入
和
块的伙伴地址分别为:_____ 和
其伙伴块的起始地址计算公
5. 二进制地址为011011110000,大小为
【答案】011011110100;011011100000
011011110000是块的起始地址,【解析】大小分别为式如下:
当大小为4时,起始地址
为
第 2 页,共 68 页
当大小为16时,起始地址为
:
6. 完善算法:求KMP 算法.next 数组。
END ; 【答案】
7. 循环队列的引入,目的是为了克服_____。
【答案】假溢出时大量移动数据元素
【解析】用数组实现队列时,如果不移动,随着数据的不断读写,会出现假满队列的情况。即尾数组已满但头数组还是空的。循环队列也是一种数组,引入循环队列,有效克服假溢出大量移动数据元素的问题。
8. n 个顶点的有向图用邻接矩阵array 表示,下面是其拓扑排序算法,试补充完整。
注:(1)图的顶点号从0开始计;
(2)indegree 是有n 个分量的一维数组,放顶点的入度, (3)函数crein 用于记算顶点入度;
(4)有三个函数push (data ), pop( ), check( )其含义为数据data 入浅,出栈和测试栈是否空(不空返回1, 否则0)。
)
.
【答案】0; j; i; 0; indegree[i]=0; [vex][i]; k==l; indegree[i]=0
【解析】有向图用邻接矩阵表示时,顶点i 的入度等于第i 列的所有元素之和。拓扑排序过程:首先将入度 为0的顶点全部进栈。然后弹出栈顶结点,并将与弹出的顶点相连的其它顶点的入度 减一,然后判断这些顶点的 入度是否为零,如果为零,继续进栈,重复这些操作,完成拓扑排序。
第 3 页,共 68 页
;
(“图有回路”)
9. 空格串是指_____,其长度等于_____。
【答案】由空格字符(
值32)所组成的字符串;空格个数
10.在单链表L 中,指针P 所指结点有后继结点的条件是_____
【答案】
【解析】指针所指节点的指针域所指向的元素非空,说明该指针所指节点有后继结点。
二、选择题
11.下述二叉树中,哪一种满足性质:从任一结点出发到根的路径上所经过的结点序列按其关键字有序( )。
A. 二叉排序树 B. 哈夫曼树
C. D. 堆 【答案】D
【解析】堆的定义: n 个关键字序列(1)
(2)
且且
或
称为堆,当且仅当该序列满足如下性质(简称为堆性质):
树
满足第(1)种情况的堆,称为小顶堆;满足第(2)种情况的堆,称为大顶堆。
由堆的定义可知堆可以满足上述性质。
12.若元素a ,b , c, d, e,f 依次进栈,允许进栈、退栈操作交替进行,但不允许连续三次进行退栈操作,则不可能得到的出栈序列是( )。
A.d ,c ,e ,b ,f ,a B.c ,b ,d ,a ,e ,f C.b ,c ,a ,e ,f ,d D.a ,f ,e ,d ,c ,b 【答案】D
【解析】4个选项所给序列的进、出栈操作序列分别为:
选项A.Push , Push , Push ,Push , Pop, Pop, Push,Pop , Pop, Push , Pop ,Pop 选项B.Push , Push , Push , Pop , Pop , Push, Pop, Pop, Push, Pop , Push, Pop 选项C.Push , Push , Pop , Push , Pop , Pop, Push, Push, Pop, Push , Pop , Pop 选项D.Push , Pop , Push, Push , Push , Push, Push, Pop, Pop,Pop , Pop , Pop
按照题目要求,不允许连续三次进行退栈操作,所以选项D 所给序列为不可能得到的出栈顺序。
第 4 页,共 68 页
相关内容
相关标签