java - 如何添加二叉树的特定部分但保持树完好无损(Java)?

标签 java binary-tree binary-data binary-search

我正在尝试编写一个代码,用于在二叉树中搜索一个元素,然后从该元素开始添加。到目前为止,我可以找到正确的位置并添加到该位置,但我丢失了二叉树的其余部分。

    public void add(String addroot, String addleft)
      if(root!=nodesearch){
        if(root.left!=null){
          root=root.left;
          add(addroot, addleft);
        }
        if(root.right!=null){
          root=root.right;
          add(addroot, addleft);
        }
      }
      else
        root=insert();
    }

insert() 添加元素并且它工作正常。感谢您的帮助。

好的,这就是我现在的想法。

private BinaryStringNode local_root = root
public void add()

  if(root!=nodesearch){
    if(local_root.left!=null){
      local_root=local_root.left;
      add();
    }
    if(local_root.right!=null){
      local_root=local_root.right;
      add();
    }
  }
  else
    local_root=insert();
}

local_root=insert() 会在 local_root 位置的根上使用 insert 方法吗? local_root=local_root.right 也会通过 root 移动吗?

最佳答案

先把它做成三个独立的函数

void insert(BinaryStringNode root, BinaryStringNode new_node){

}

int add(BinaryStringNode root){

}

BinaryStringNode find(String name){

}

现在尽可能填写代码。

当你想得到总和时,只需调用 add(find(s)); 其中 s 是一个字符串

关于java - 如何添加二叉树的特定部分但保持树完好无损(Java)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6632241/

相关文章:

javascript - 左关联二叉树折叠

java - 生成 Java 日期,但日期不变且时间不同

c# - 从外部应用程序读取屏幕上的文本。 API Hook ?

java - 使用 jdk8 Conscrypt 为 http2 启用 ALPN

c++ - C++ 二叉树析构函数

c# - 在 C# 中解码原始串行协议(protocol)

java - 通过 TCP 发送大字符串(Java - PHP)

c++ - 你如何找到树的最小深度?

c++ - 文本文件的二进制输入

macos - 可执行文件中公共(public)字符串的含义?