题目内容
(请给出正确答案)
[主观题]
在二叉搜索树上删除一个有两个子女的结点时,可以采用以下方法:用左子树TL上具有最大关键码的
结点或者用右子树TR上具有最小关键码的结点顶替,再递归地删除适当的结点。可随机选择其中一个方案。试编写程序实现这个删除方法。
查看答案
如果结果不匹配,请 联系老师 获取答案
回指向该结点的指针。要求算法的平均时间复杂度为O(log2n)。二叉搜索树的每个结点中除data、ieftChild、rightChild等数据成员外、增加一个count成员,保存以该结点为根的子树上的结点个数。
bitreptr search_bst(bitreptr T,keytype K)
{ if(T==NULL)return(NULL);
else switch
{ case T—>key==K:______;
case______: return(search_bst(T—>lchild,K));
case______: return(search_bst(T—>rchild,K));
}
}
A.由树的先序遍历序列和后序遍历序列可以惟一确定一棵树
B.二叉树不同于度为2的有序树
C.深度为k的二叉树上最少有k个结点
D.在结点数目相同的二叉树中,最优二叉树的路径长度最短
B、若p无左子女且有右子女,则其前序下的后继为p的布子女
C、若p既无左子女又无右子女,则其前序下的后继为p的右线索所指结点
D、若p无左子女,从结点p开始,追踪rightChild链,直到rightChild不是线索,则这时rightChild(不为NULL的话)所指结点为其前序下的后继
此题为判断题(对,错)。
假设在表示一棵二叉树的二叉链表上增加两个域,双亲域用于指示其双亲结点,标志域flag(可取,0…2)的值,用以区分在遍历过程中到达该结点时继续向左或向右或访问该结点。试以此存储结构编写不用栈进行后序遍历的递推形式的算法。