Data structures 如何使用字符串数组创建二叉树?

Data structures 如何使用字符串数组创建二叉树?,data-structures,binary-tree,Data Structures,Binary Tree,我被分配了一项任务,需要完成以下工作: 使用数组表示法和节点标签A、…、J作为字符串,将二叉树作为数组输入。标签null表示不存在的节点,而不是值为null的节点 检查二叉树输入的有效性:每个节点(根节点除外)都应该有一个父节点 仅使用标签不同于null的节点生成树的动态内存实现 到目前为止,我已经: public class Project1{ public static void main(String[] args){ String[] input = new String[]

我被分配了一项任务,需要完成以下工作:

  • 使用数组表示法和节点标签A、…、J作为字符串,将二叉树作为数组输入。标签null表示不存在的节点,而不是值为null的节点
  • 检查二叉树输入的有效性:每个节点(根节点除外)都应该有一个父节点
  • 仅使用标签不同于null的节点生成树的动态内存实现
到目前为止,我已经:

public class Project1{ 
 public static void main(String[] args){
  String[] input = new String[]{"A","B","C","D","E","F","G","H","I","J"};  
 }
  public class BinaryTree<T> implements java.io.Serializable{
   private T data;
    private BinaryTree<T> left;
    private BinaryTree<T> right;
    
    public BinaryTree(T data){
        this.data = data; 
        left = null; 
        right = null;
    }
    public T getData(){
        return data;
    }
    public void attachLeft(BinaryTree<T> tree){
        if(tree != null){
            left = tree;
        }   
    }
    public void attachRight(BinaryTree<T> tree){
        if(tree != null){
            right = tree;
        }   
    }
    public BinaryTree<T> detachLeft(){
      BinaryTree<T> t = left;
      left = null;
      return t;
    }
    public BinaryTree<T> detachRight(){
      BinaryTree<T> t = right;
      right = null;
      return t;
    }
    public boolean isEmpty(){
        return data == null;
    }
    public void inOrder(BinaryTree<T> tree){
        if (tree != null){
            inOrder(tree.left);
            System.out.println(tree.getData());
            inOrder(tree.right);
        }
    }
    public void preOrder(BinaryTree<T> tree){
        if(tree != null){
            System.out.println(tree.getData());
            preOrder(tree.left);
            preOrder(tree.right);
        }
    }
    public void postOrder(BinaryTree<T> tree){
        if(tree != null){
            postOrder(tree.left);
            postOrder(tree.right);
            System.out.println(tree.getData());
        
        }
    }
    }
公共类项目1{
公共静态void main(字符串[]args){
字符串[]输入=新字符串[]{“A”、“B”、“C”、“D”、“E”、“F”、“G”、“H”、“I”、“J”};
}
公共类BinaryTree实现java.io.Serializable{
私有T数据;
私有二叉树左;
私有二叉树权;
公共二叉树(T数据){
这个数据=数据;
左=空;
右=空;
}
公共T getData(){
返回数据;
}
公共void附件左(二叉树){
如果(树!=null){
左=树;
}   
}
公共无效附件权限(二叉树){
如果(树!=null){
右=树;
}   
}
公共二叉树(左){
二叉树t=左;
左=空;
返回t;
}
公共二叉树detachRight(){
二叉树t=右;
右=空;
返回t;
}
公共布尔值为空(){
返回数据==null;
}
公共无效索引(二进制树){
如果(树!=null){
顺序(树,左);
System.out.println(tree.getData());
顺序(tree.right);
}
}
公共无效预排序(二叉树){
如果(树!=null){
System.out.println(tree.getData());
前序(树左);
前序(树右);
}
}
公共作废邮购(二叉树){
如果(树!=null){
邮购(左树形);
邮购(树右);
System.out.println(tree.getData());
}
}
}

我不明白的是如何使用字符串数组中的数据创建二进制树

“如何使用我的数据创建二进制树”就像问“帮助我完成作业”。因此,如果您能补充到目前为止您尝试过的内容以及您面临的问题,那就太好了it@shridharRKulkarni我没有包括我尝试过的内容,因为它不起作用。大多数情况下,我只是抓住救命稻草。我不是要求完成全部作业,我只是试图克服将数据放入BinaryTree类的困难。我知道我将如何创建一个迭代解决方案来将数据放入BinaryTree中,我只是不知道此时如何创建BinaryTree的对象。