2017年北京市培养单位软件研究所863计算机学科综合(专业)之数据结构考研仿真模拟题
● 摘要
一、填空题
1. 已知二维数组
为1000的连续存储区域时,
【答案】1196
【解析】设元素的行标为i ,列标为j 。则它的存储位置为:
2. 下列程序是快速排序的非递归算法,请填写适当的语句,完成该功能。
中每个元素占4个单元,在按行优先方式将其存储到起始地址的地址是:_____。
【答案】
【解析】快速排序(quicksort )的基本思想是,通过一趟排序将待排记录分割成独立的两部分,其中一部分记录的关键字均比另一部分记录的关键字小,则可分别对这两部分记录继续进行排序,以达到整个序列有序。
3. 阅读下列程序说明和裎序,填充程序中的_____。
【程序说明】本程序完成将二叉树中左、右孩子交换的操作。交换的结果如下所示(编科略)本程序采用非递归的方法,设立一个堆栈交换左、右子树的算法为:
(1)把根结点放入堆栈。
(2)当堆栈不空时,取出栈顶元素,交换它的左、右子树,并把它的左、右子树分别入栈。(3)重复(2)直到堆栈为空时为止。
存放还没有转换过的结点,它的栈顶指针为
。
(1)
{(2)
If ( (3) )
}
}}
【答案】
【解析】本题主要使用堆栈完成了二叉树左右子树交换的操作。首先根结点进栈,然后判断栈足否为空,如果不为空,则取栈顶元素,交换取出节点的左右指针。并将左右指针分别进桟,重复这一操作。完成二叉树左右孩子的交换。
4. G 是一个非连通无向图,共有28条边,则该图至少有_____个顶点。
【答案】9
【解析】求该非连通无向图的最少顶点数,则该图为一个孤立的顶点和一个完全连通图。
5. 若用n 表示图中顶点数目,则有_____条边的无向图成为完全图。
【答案】n (n-l )/2
【解析】无向完全图中任意一个顶点都和其他n-1个顶点都有一条边,即为n (n-l )。又因为每条边重复出现两次,所有无向完全图的边数为n (n-l )/2。
6. 二叉树由_____,_____,_____三个基本单元组成。
【答案】根结点;左子树;右子树
7. 设为哈夫曼树的叶结点数日,则该哈夫曼树共有_____个结点。
【答案】
【解析】哈夫曼树只有度为0和2的节点。
8. —个字符串中_____称为该串的子串。
【答案】任意个连续的字符组成的子序列
9. 求图的最小生成树有两种算法,_____算法适合于求稀疏图的最小生成树e
【答案】克鲁斯卡尔
【解析】克鲁斯卡尔算法是一种按权值的递增次序选择合适的边来构造最小生成树的方法,这种算法中,采用堆来存放边的集合,适合于边稀疏而顶点较多的图。
10.设正文串长度为n ,模式串长度为m ,则串匹配的KMP 算法的时间复杂度为_____。
【答案】
二、判断题
11.在一个设有头指针和尾指针的单链表中,执行删除该单链表中最后一个元素的操作与链表的长度无关。( )
【答案】
【解析】必须从头指针开始,查找到尾指针所指结点的前驱结点的指针。
12.通常使用队列来处理函数或过程的调用。( )
【答案】
【解析】经常使用栈来处理函数或过程的调用。
13.内排序要求数据一定要以顺序方式存储。( )
【答案】×
【解析】由于待排序的记录数量不同,使得排序过程中涉及的存储器不同,可将排序方法分为两大类:一类是内部排序;另一类是外部排序。因此,内部排序没有要求数据一定是以顺序方式存储。
14.在任何情况下,归并排序都比简单插入排序快。( )
【答案】×
【解析】错误。待排序序列为正序时,简单插入排序比归并排序快。
15.串是一种数据对象和操作都特殊的线性表。( )
【答案】
【解析】串是一种操作特殊的线性表,其特殊性主要体现在数据元素是一个字符。在内存中,一份文本都可以看做是一个字符串,而每一行都可以看做是其子串。
16.m 阶B 树的任何一个结点的左右子树的高度都相等。( )
【答案】√
相关内容
相关标签