网友您好, 请在下方输入框内输入要搜索的题目:
题目内容
(请给出正确答案)
10、若关键字的输入序列为20,9,2 ,11,13,30,22,16,17,15,18,10。 (1)试从空树开始顺序输入各关键字建立平衡二叉树。画出每次插入时二叉树的形态,若需要平衡化旋转则做旋转并注明旋转的类型; (2)计算该平衡二叉搜索树在等概率下的查找成功的平均查找长度; (3)基于上面建树的结果,画出从树中删除22,删除2,删除10与9后树的形态和旋转类型。
参考答案和解析
10 2 16 6 18 12 16* 20 30 28
更多 “10、若关键字的输入序列为20,9,2 ,11,13,30,22,16,17,15,18,10。 (1)试从空树开始顺序输入各关键字建立平衡二叉树。画出每次插入时二叉树的形态,若需要平衡化旋转则做旋转并注明旋转的类型; (2)计算该平衡二叉搜索树在等概率下的查找成功的平均查找长度; (3)基于上面建树的结果,画出从树中删除22,删除2,删除10与9后树的形态和旋转类型。” 相关考题
考题
阅读以下说明和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;}
考题
在查找算法中,可用平均查找长度(记为ASL)来衡量一个查找算法的优劣,其定义为:此处Pi为表中第i个记录被查找的概率,Ci为查找第i个记录时同关键字比较的次数,n为表中记录数。以下叙述中均假定每一个记录被查找的概率相等,即Pi=//n(i=1,2,…,n)。当表中的记录连续存储在一个一维数组中时,可采用顺序查找与折半查找方法(折半查找要求表是按关键字有序排列的)。顺序查找时的ASL为(19),折半查找时的ASL为(20)。记录的关键字有序时,用二叉排序树查找记录,在最坏的情况下,ASL为(21)。当二叉排序树是一棵平衡树时,ASL为(22)。在平衡树上删除一个结点后可以通过旋转使其平衡,最坏的情形下需(23)次旋转。A.O(1)B.O(log2n)C.O(log2n2)D.O(nlog2n)E.O(n)
考题
二叉树的前序、中序和后序遍历法最适合采用__(1)__来实现。查找树中,由根结点到所有其他结点的路径长度的总和称为__(2)__,而使上述路径长度总和达到最小的树称为__(3)__。它一定是__(4)__。在关于树的几个叙述中,只有__(5)__是正确的。空白(4)处应选择()A、B-树B、平衡树C、非平衡树D、穿线树
考题
单选题二叉树的前序、中序和后序遍历法最适合采用__(1)__来实现。查找树中,由根结点到所有其他结点的路径长度的总和称为__(2)__,而使上述路径长度总和达到最小的树称为__(3)__。它一定是__(4)__。在关于树的几个叙述中,只有__(5)__是正确的。空白(4)处应选择()A
B-树B
平衡树C
非平衡树D
穿线树
考题
判断题在任意一棵非空二叉树中,删除某结点后又将其插入,则所得二叉排序树与删除前原二叉树排序树相同。A
对B
错
热门标签
最新试卷