2018年北方工业大学计算机学院861数据结构考研核心题库
● 摘要
一、填空题
1. 在双向循环链表中,向P 所指的结点之后插入指针f 所指的结点,其操作是_____、_____、_____、_____。
【答案】f ﹣>next =p ﹣>next ;f ﹣>prior =p ;p ﹣>next ﹣>prior =f ;p ﹣>next =f ;
2. 已知链队列的头尾指针分别是f 和r ,则将值x 入队的操作序列是_____。
【答案】S =(LinkedList*)malloc(sizeof (LNode));s ﹣>data =x ;s ﹣>next =r ﹣>next ;r ﹣>next =s ;r =s ;
【解析】队列采用链式存储结构,先分配一个节点的内存,然后在队尾添加该节点。
3. 在进行入栈运算时应先判别栈是否_____:在进行出栈运算时应先判别栈是否_____:当栈中元素为n 个,进行入栈运算时发生上溢,则说明该栈的最大容量为_____。为了增加内存空间的利用率和减少溢出的可能性,由两个栈共享一片连续的空间时,应将两栈的_____分别设在内存空间的两端,这样只有当_____时才产生溢出。
【答案】满;空;n ;栈底;两栈顶指针相邻(即值之差的绝对值为1)
4. 已知一循环队列的存储空间为
则此循环队列判满的条件是_____ 【答案】
5. 以下是用类C 语言写出的算法,该算法将以二叉链表存储的二叉树中的叶结点按从左到右的顺序链成一个带头结点的双向循环链表,链接时,结点的Lchild 域作为前链域,指向结点的直接前驱,结点的Rchild 域作为后链域,指向结点的直接后继。算法中,使用一个顺序栈stack , 栈顶指针为top ,P ,t 为辅助指针,head 为双向循环链表的头指针。试填充算法中的空格,使算法完整。
第 2 页,共 46 页 ,其中n >m ,队头和队尾指针分别为front 和rear ,
【答案】
6. 从用户的观点看,文件的逻辑结构通常可以区分为两类:一类是如NdBASE 中数据库文件那样的文件组织结构,称为_____文件; 另一种是诸如用各种文字处理软件编辑成的文本文件,称为_____文件。从文件在存储器上的存放方式来看,文件的物理结构往往可区分为三类,即_____, _____和_____。B+树适用于组织_____的索引结构,m 阶B+树毎个结点至多有_____个儿子,除根结点外每个结点至少有_____个儿子,根结点至少有_____个儿子,有k 个儿子的结点必有_____个关键码。
【答案】数据库;文本;顺序组织;随机组织;链组织;随机组织;m ;
7. 无用单元是指_____,例_____
【答案】用户不再使用而系统没有回收的结构和变量;
8. 串是一种特殊的线性表,_____;其特殊性表现在_____;串的两种最基本的存储方式是_____、两个串相等的充分必要条件是_____。
【答案】其数据元素都是字符;顺序存储;链式存储;串的长度相等且两串中对应位置的字符也相等
9. 有向图G=(V, E) ,其中
权d 。E(G)为
,则从源点0到顶点3的最短路径长度是_____,经过的中间顶点是_____。
【答案】50;4
10.建立索引文件的目的是_____。
【答案】提高查找速度
;2;k ,用三元组表示弧及弧上的
二、判断题
11.一个稀疏矩阵A m*n采用三元组形式表示,若把三元组中有关行下标与列下标的值互换,并把m 和n 的值互换,则就完成了A m*n的转置运算。( )
【答案】 ×
【解析】稀疏矩阵转置后,除行列下标及行列数互换外,还必须确定该元素转置后在新三元组中的位置。
第 3 页,共 46 页
12.数组不适合作为任何二叉树的存储结构。( )
【答案】 ×
【解析】对于完全二叉树,因为其n 个结点的位置已经固定,所以用一维数组作为存储结构是高效率的(存储密度大) 。
13.强连通分量是无向图的极大强连通子图。( )
【答案】×
【解析】强连通分量是对有向图而言的,一般在无向图中讨论连通性。
14.m 阶B 树的任何一个结点的左右子树的高度都相等。( )
【答案】√
【解析】由B 树的性质得知,叶子结点都处于同一层。因此,m 阶B 树的任何一个结点的左右子树的高度都相等。
15.从逻辑结构上看,n 维数组的每个元素均属于n 个向量。( )
【答案】 √
【解析】对于每一维,都有一个向量共用这个元素,比如我们最常见的二维数组,对于每个元素,在行和列都有一个向量共用这个元素。
16.B-树中所有结点的平衡因子都为零。( )
【答案】√
【解析】一棵m 阶的B-树,如果不为空,则所有的叶子结点都出现在同一层次上,所以B-树总的所有结点的平衡因子都为零。
17.在用堆排序算法排序时,如果要进行增序排序,则需要采用“大根堆”。( )
【答案】√
【解析】堆排序:基本思想先将原始序列构造成一个堆(初始堆) ,使其n 个元素的最大(小) 值处于序列的第 —个位置;然后交换序列第一个元素与最后一个元素的位置。
18.二叉树是一般树的特殊情形。( )
【答案】×
【解析】树与二叉树是两种不同的树形结构,二叉树中的孩子结点有着严格左右之分的。
19.为提高排序速度,进行外排序时,必须选用最快的内排序算法。( )
【答案】×
【解析】外部排序算法最常用的是多路归并,即将原文件分解成多个能够一次性装人内存的部分,分别把每一部分调入内存完成排序。然后,对己经排序的子文件进行归并排序。
第 4 页,共 46 页