对
错
第1题:
以下说法错误的是 ( )
A.一般在哈夫曼树中,权值越大的叶子离根结点越近
B.哈夫曼树中没有度数为1的分支结点
C.若初始森林中共有n裸二叉树,最终求得的哈夫曼树共有2n-1个结点
D.若初始森林中共有n裸二叉树,进行2n-1次合并后才能剩下一棵最终的哈夫曼树
第2题:
一棵树按照左子女-右兄弟表示法转换成对应的二叉树,则该二叉树中树根结点肯定没有【 】子女。
第3题:
下面关于B树运算的叙述中,正确的是
A.若插入过程中根结点发生分裂,则B树的高度加1
B.每当进行插入运算,就往B树的最下面一层增加一个新结点
C.若要删除的关键码出现在根结点中,则不能真正删除,只能做标记
D.删除可能引起B树结点个数减少,但不会造成B树高度减小
第4题:
下面关于B树运算的叙述中,正确的是
A.若插入过程甲根结点发生分裂,则B树的高度加1
B.每当进行插入运算,就往B树的最下面一层增加一个新结点
C.若要删除的关键码出现在根结点中,则不能真正删除,只能做标记
D.删除可能引起B树结点个数减少,但不会造成B树高度减小
第5题:
以下关于B树运算的叙述中,哪一条是正确的?
A.若插入过程中根节点发生分裂,则B树的高度加1
B.每当进行插入运算,就在B树的最下面一层增加一个新节点
C.若要删除的关键码出现在根节点中,则不能真正删除,只能做标记
D.删除可能引起B树节点个数减少,但不会造成B树高度减少
第6题:
如下所示是一棵5阶B树,该B树现在的层数为2。从该B树中删除关键码38后,该B树的第2层的结点数为
A.6
B.7
C.8
D.9
第7题:
阅读以下说明和C语言函数,将应填入(n)处的字句写在答题纸的对应栏内。
【说明】
一棵非空二叉树中“最左下”结点定义为:若树根的左子树为空,则树根为“最左下”结点;否则,从树根的左子树根出发,沿结点的左
子树分支向下查找,直到某个结点不存在左子树时为止,该结点即为此二叉树的“最左下”结点。例如,下图所示的以 A为根的二叉树的“最
左下”结点为D,以C为根的子二叉树中的“最左下”结点为C。
二叉树的结点类型定义如下:
typedef stmct BSTNode{
int data;
struct BSTNode*lch,*rch;//结点的左、右子树指针
}*BSTree;
函数BSTree Find Del(BSTree root)的功能是:若root指向一棵二叉树的根结点,则找出该结点的右子树上的“最左下”结点*p,并从
树于删除以*p为根的子树,函数返回被删除子树的根结点指针;若该树根的右子树上不存在“最左下”结点,则返回空指针。
【函数】
BSTrce Find_Del(BSTreeroot)
{ BSTreep,pre;
if ( !root ) return NULL; /*root指向的二叉树为空树*/
(1); /*令p指向根结点的右子树*/
if ( !p ) return NULL;
(2); /*设置pre的初值*/
while(p->lch){ /*查找“最左下”结点*/
pre=p;p=(3);
}
if ((4)==root) /*root的右子树根为“最左下”结点*/
pre->rch=NULL;
else
(5)=NULL; /*删除以“最左下”结点为根的子树*/
reurn p;
}
第8题:
以下关于B树运算的叙述中,哪一条是正确的?
A.若插入过程中根结点发生分裂,则B树的高度加1
B.每当进行插入运算,就在B树的最下面一层增加一个新结点
C.若要删除的关键码出现在根结点中,则不能真正删除,只能做标记
D.删除可能引起B树结点个数减少,但不会造成B树高度减小
第9题:
如下所示是一棵5阶B树,从该B树中删除关键码41后,该B树的叶结点数为
A.6
B.7
C.8
D.9
第10题: