java - Java中如何输入二叉树

标签 java input tree binary-tree stdio

我需要帮助在 Java 中实现二叉树。

我的意思不是从文本文件中读取它。我的意思是用户使用扫描仪输入树,然后它创建并输出树值。另外,“-”号表示树中的空值。

到目前为止,我有一个节点类正在工作,但我需要它能够从所述节点中创建一棵树。它还需要知道何时停止接受输入。

这是我的代码的开始。我需要一种方法来输入节点列表并使用这些类将其放入树中。

import java.util.Scanner;  
import java.io.*;
import java.util.*;
import java.text.*;
import java.math.*;
import java.util.regex.*;
import java.util.Queue;
import java.util.LinkedList;


/**
 *
 * @author phirstprince
 */

class TreeNode {
    int data;
    TreeNode LC, RC;

    public TreeNode(int x) {
        data = x;
        LC = null;
        RC = null;
    }

}

  public class TreeDeserialize {

      /**
       * @param args the command line arguments
       */
        public static void main(String[] args) {
          Scanner input = new Scanner(System.in);
          int x = input.nextInt(); 
      }

  }

例如,如果一个人输入这个( - 为空节点)

1
2
3
-
4
5
6
-
-
-
-
-
-

它将把它组织成这样的树。

         1
       /   \
      2     3
       \   / \
        4 5   6

有人认为他们可以提供帮助吗?我相信这需要排队。另外如何确保它知道何时停止接受输入?

最佳答案

您应该开发一种方法来检查数字并将其添加到,例如,如果数字大于父级,则应将其添加到右侧,如果小于父级,则应将其添加到左侧。我认为你可以借助递归来开发这个功能。

关于java - Java中如何输入二叉树,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40225712/

相关文章:

html - 如何选择 div 中的两个不同输入类型的文本?

c - 如何用 C 语言读取这种格式的文件 ./filec &lt;input.in> <output.myout>

java - Android HTTPs post 在较新的设备上失败

java - 如果只有一个writer线程并且没有对map进行结构修改,我们是否需要同步java HashMap gets

javascript - fileReader Javascript 的结果并不总是相同

java - 搜索非二叉树中的任何节点,即使找到多个节点,也保持其父节点不变

extjs - 如何防止在 Ext Js 树中检查更改时出现 itemclick 事件

parsing - Ocaml 解析字符串以生成树

java - 如何在 Java Button (GUI) 中调用外部方法

java - 涉及实现接口(interface)的实现问题