【发布时间】:2016-10-24 19:05:47
【问题描述】:
我需要帮助在 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
有人认为他们可以提供帮助吗?我相信这需要排队。还有如何确保它知道何时停止接受输入?
【问题讨论】:
-
您是否尝试实现堆结构?您显示的树与二叉搜索树不匹配(2、4 和 5 位于错误的位置),但它与堆匹配。
标签: java input tree binary-tree stdio