如何解决麻烦给选项添加多个条目到二叉树吗?目前,代码只允许一个
| 在下面的代码中。我试图让用户在程序中输入条目。现在,他们只能在程序中添加一个条目。我如何编辑它,以便用户可以选择在程序中输入另一个条目。 输出示例: 输入ID:444 输入FName:John 输入名称:Thompson 您是否要输入其他条目是/否? 输入ID:1 输入FName:Gail 输入名称:詹宁斯 您是否要输入其他条目是/否? 如果单击“是”,我想将收集的数据添加到二叉树中,并允许用户输入另一个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;
}
}
解决方法
考虑使用“ 1”循环。就像是
boolean more;
do {
insertOneUser();
System.out.println(\"Add another?\");
more = \"y\".equals(input.next().toLowerCase());
} while (more);
, 您需要使用集合类来存储创建的对象。
我建议您使用TreeSet来存储值。(您需要修改isert方法以将节点添加到TreeSet中。
这应该给您期望的结果。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。