我需要从预先订购的bitstring(通过管道传输到流中的标准输入)构建二叉树,我想知道我对此的理解是否正确。
如果我有一个11110001000的预编程位串(其中1表示内部节点,0表示外部节点),那么会产生这样的二叉树吗?
1 / \ 1 0 / \ 1 1 / \ / \ 1 00 0 / \ 0 0
从preorder bitstring(通过输入给出)构建二叉树之后,我还需要找到高度,路径长度以及二叉树是否完整。但是我无法前进到能够做到这一点的地步,因为我不知道如何开始实现预编程位串 - > Java中的二叉树转换。任何人都可以提供一些关于我如何开始从预编程位串构建二叉树的提示吗?
答案 0 :(得分:1)
答案 1 :(得分:1)
您可以从我前一段时间制作的这个简单程序开始,并将其调整为接受二进制字符串作为输入而不是手动输入:
import javax.swing.JOptionPane;
class Node {
int info;
Node fs;
Node fd;
}
class BinaryTree {
public static void main(String[] args) {
Node tree = null;
tree = insertRecursivePreorder(tree);
}
static Node insertRecursivePreorder (Node n) {
String input = JOptionPane.showInputDialog("Insert node, 0 to end: \n");
int dato = Integer.parseInt(input);
if (dato == 0) {
n=null;
} else {
n=new Node();
n.info=dato;
n.fs=insertRecursivePreorder(n.fs);
n.fd=insertRecursivePreorder(n.fd);
}
return n;
}
}