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