我试图打印我的二叉搜索树的每个节点的所有值和深度。我很难想出一种递归计算深度的方法。到目前为止,我有一种仅打印树的每个值的方法。我将不胜感激一些指导,因为我觉得我让它变得比应有的更难。
public void printTree( )
{
if( isEmpty( ) )
System.out.println( "Empty tree" );
else
printTree( root );
}
我没有看到任何用于打印树的代码,但除此之外,打印功能也没有完成。要打印整个树,您可以依赖任何树遍历算法。下面是返回深度并按预定顺序打印树的示例代码。
public static void printTree(Node r) {
if( r==null )
return;
System.out.println(r.value);
printTree(r.left);
printTree(r.right);
}
public static int findDepth (Node r) {
if(r==null)
return 0;
return (max(findDepth(r.left),findDepth(r.right))+1);
}
这是基于假设节点类定义如下。
class Node {
int value;
Node left;
Node right;
Node(int value) {
this.value = value;
right = null;
left = null;
}
}
您可能需要在单独的函数或 main 内部构建用于测试的树。
我需要打印一个具有深度和从高到低的二叉搜索树,根据深度,在打印节点之前增加破折号的数量。树根用0破折号,她的树梢用1破折号……我可以打印没有破折号的树,但我不知道如何用破折号打印。我用的是C.对不起我的英语不好
我坚持使用递归函数来查找二叉树中节点的深度,更具体地说,是在else条件中: 如果树是二叉搜索树,知道左子值总是低于父值,右子值总是高于父值,我可以添加一个If条件,这样如果节点x值低于根,我总是返回根- 当查看函数时,假设节点总是存在的,节点x永远不是根,并且在开始时传递的深度总是0。 如果树是二叉搜索:
本文向大家介绍如何打印二叉树每层的节点?相关面试题,主要包含被问及如何打印二叉树每层的节点?时的应答技巧和注意事项,需要的朋友参考一下 考察点:二叉树 实现代码:
几天来,我一直在使用二进制搜索树实现,我已经到了知道我的根正在通过使用我的“插入()”来填充的地步(当我使用Eclipse进行调试时,我可以看到这一点)。为什么我的其他节点不会被添加到树中? 这是我的BST课程: 这是我的Main(),最终我想在控制台中打印我的BST值,但首先我知道它们需要添加到树中: 公共类Main{
我现在正在读一本关于从二叉搜索树中删除节点的书,书中描述的过程对我来说似乎不必要地复杂。 在1号情况下,如果我们删除40,它将替换为30;在 2 号情况下,如果我们删除 40,它将被替换 35。 但在书中,它说应该从要删除的节点的右子树中找到替换,这可能涉及一些复杂的操作。 我在这里遗漏了什么吗?请指出。
二叉搜索树(BST)中节点的深度与其与根的距离相同吗?我想是的,但我不确定。我相信距离是树的一般概念,深度是应用于BST的概念。