2011-06-22 28 views
0

在下面的代碼中。我試圖讓用戶在程序中輸入條目。現在他們只能在程序中添加一個條目。我如何編輯它,以便用戶可以選擇輸入另一個條目。輸出麻煩給出添加多個條目到二叉樹的選項?現在代碼只允許有一個

例子: 輸入ID:444 輸入FName參數:約翰 輸入L-NAME:湯普森

你想進入另一個入口Y/N Y 輸入ID:1 進入FName參數:蓋爾 輸入L-NAME:詹寧斯

你想進入另一個入口Y/N N

如果是點擊我要收集的數據添加到二叉樹,並允許用戶輸入另一個我d。我怎樣才能做到這一點?

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

考慮使用do { ... } while()循環。喜歡的東西

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

羅我需要用電子郵件找到用戶和身份證。輸入ID> x |輸入Name> y |輸入姓氏> z – allencoded

0

你需要使用一個集合類存儲對象創建.. 我; d建議你使用一個TreeSet來存儲值。(你需要修改isert方法將節點添加到TreeSet中。

這應該給你想要的結果。

相關問題