Java 在二叉树中添加多个条目的选项有问题吗?现在代码只允许一个

Java 在二叉树中添加多个条目的选项有问题吗?现在代码只允许一个,java,binary-tree,Java,Binary Tree,在下面的代码中。我试图允许用户在程序中输入条目。现在他们只能在程序中添加一个条目。如何编辑它,以便用户可以选择在程序中输入其他条目 输出示例: 输入ID:444 输入FName:John 输入名称:汤普森 是否要输入其他条目是/否?是 输入ID:1 输入FName:Gail 输入名称:Jennings 是否要输入其他条目是/否?否 如果单击“是”,我想将收集的数据添加到二叉树中,并允许用户输入另一个id。我如何才能做到这一点 import java.util.Scanner; class cl

在下面的代码中。我试图允许用户在程序中输入条目。现在他们只能在程序中添加一个条目。如何编辑它,以便用户可以选择在程序中输入其他条目

输出示例: 输入ID:444 输入FName:John 输入名称:汤普森

是否要输入其他条目是/否?是 输入ID:1 输入FName:Gail 输入名称:Jennings

是否要输入其他条目是/否?否

如果单击“是”,我想将收集的数据添加到二叉树中,并允许用户输入另一个id。我如何才能做到这一点

import java.util.Scanner;

class clubmember {

    public static void main(String[] args) {

        int id;
         String fname, lname;
         Scanner input = new Scanner(System.in);

         System.out.println("Enter ID>");
         id = input.nextInt();

         System.out.println("Enter first name >");
         fname = input.next();

         System.out.println("Enter last name >");
         lname = input.next();



         BinaryTreeTest foo = new BinaryTreeTest(); 


           Person per1 = new Person(id, fname, lname);
           BinaryTreeTest.Node nod1 = new BinaryTreeTest.Node(per1);

           Person per2 = new Person(734, "Smith", "Rick");
           Person per3 = new Person(324, "Gates", "Jill");

           foo.insert(nod1, per2);
           foo.insert(nod1, per3);

           foo.printInOrder(nod1);


    }
}



public class BinaryTreeTest {

  public static void main(String[] args) {

    new BinaryTreeTest().run();
  }

  // Node Class
  static class Node {
    Node left;

    Node right;

    Person value;

    public Node(Person value) {
      this.value = value;
    }
  }

  public void run() {

  }

  public void insert(Node node, Person value) {
    if (value.getId() < node.value.getId()) {
      if (node.left != null) {
        insert(node.left, value);
      } else {
        System.out.println("  Inserted " + value + " to left of "
            + node.value);
        node.left = new Node(value);
      }
    } else if (value.getId() > node.value.getId()) {
      if (node.right != null) {
        insert(node.right, value);
      } else {
        System.out.println("  Inserted " + value + " to right of "
            + node.value);
        node.right = new Node(value);
      }
    }
  }

  public void printInOrder(Node node) {
    if (node != null) {
      printInOrder(node.left);
      System.out.println("  Traversed " + node.value);
      printInOrder(node.right);
    }
  }
}


public class Person {
    private final int id;
    private final String firstName;
    private final String lastName;


    public Person(int id, String firstName, String lastName) {
        this.id = id;
        this.firstName = firstName;
        this.lastName = lastName;
    }

    public int getId() {
        return id;
    }

    public String getFirstName() {
        return firstName;
    }

    public String getLastName() {
        return lastName;
    }

    @Override
    public String toString() {
        return String.valueOf(id) + ": " + firstName + " " + lastName;
    }
}
import java.util.Scanner;
班级俱乐部成员{
公共静态void main(字符串[]args){
int-id;
字符串fname,lname;
扫描仪输入=新扫描仪(System.in);
System.out.println(“输入ID>”;
id=input.nextInt();
System.out.println(“输入名字>”;
fname=input.next();
System.out.println(“输入姓氏>”;
lname=input.next();
BinaryTreeTest foo=新的BinaryTreeTest();
per1人员=新人员(id、fname、lname);
BinaryTreeTest.Node nod1=新的BinaryTreeTest.Node(per1);
per2=新人(734,“史密斯”、“里克”);
per3人=新人(324“盖茨”、“吉尔”);
foo.插入(节点1,per2);
foo.插入(节点1,per3);
foo.printInOrder(nod1);
}
}
公共类二进制树测试{
公共静态void main(字符串[]args){
新建BinaryTreeTest().run();
}
//节点类
静态类节点{
左淋巴结;
节点权;
人的价值;
公共节点(个人值){
这个值=值;
}
}
公开募捐{
}
公共空白插入(节点、人员值){
if(value.getId()node.value.getId()){
if(node.right!=null){
插入(node.right,value);
}否则{
System.out.println(“插入的“+值+”到右侧”
+节点值);
node.right=新节点(值);
}
}
}
公共无效打印顺序(节点){
如果(节点!=null){
printInOrder(node.left);
System.out.println(“遍历”+节点值);
printInOrder(node.right);
}
}
}
公共阶层人士{
私有最终int id;
私有最终字符串名;
私有最终字符串lastName;
公共人物(int-id、String-firstName、String-lastName){
this.id=id;
this.firstName=firstName;
this.lastName=lastName;
}
公共int getId(){
返回id;
}
公共字符串getFirstName(){
返回名字;
}
公共字符串getLastName(){
返回姓氏;
}
@凌驾
公共字符串toString(){
返回字符串。valueOf(id)+“:“+firstName+”+lastName;
}
}

您需要使用集合类来存储创建的对象。。 我我建议您使用树集来存储值。。(您需要修改isert方法以将节点添加到树集


这会给你想要的结果。

考虑使用
do{…}while()
循环

boolean more;
do {
  insertOneUser();
  System.out.println("Add another?");
  more = "y".equals(input.next().toLowerCase());
} while (more);

不,我需要输入用户和id。输入id>x |输入姓名>y |输入姓氏>z