2016-03-22 14 views
1

Bir düğümde hasta verilerini yüklemem gereken bir ödev atamam var, daha sonra ağaçta arama yapabilirim. Düğüm, hasta adını, doktor adını, mevcut randevusunu ve gelecek yıllık randevu tarihini saklar. Veri bir metin dosyasından okunur. Verileri düğümlere depolamak için arrayList kullanmak istiyorum ancak kafa karıştırıcı kısım, arrayList'in belirli verilerini her düğümde nasıl saklayabilirim? (Ben mantıklı umut) Bu benim ağaç sınıfBir BST için Düğümde Veri Kaydetme

public class Tree { 

    Node root; 

    public void addNode(int key, String patientName, String DocName, String currentApp, String nextApp){ 
     Node newNode = new Node(key, patientName, DocName, currentApp, nextApp); 

     if(root == null){ 
      root = newNode; 
     } 

     else{ 
      Node currentNode = root; 

      Node parent; 

      while(true){ 
       parent = currentNode; 

       if(key < currentNode.key){ 
        currentNode = currentNode.leftChild; 

        if(currentNode == null){ 
         parent.leftChild = newNode; 
         return; 
        } 

       } 
       else{ 
        currentNode = currentNode.rightChild; 

        if (currentNode ==null){ 
         parent.rightChild = newNode; 
         return; 
        } 
       } 

      } 
     } 
    } 


    public void Traversal(Node currentNode){ 
     if(currentNode != null){ 
      Traversal(currentNode.leftChild); 
      System.out.println(currentNode); 

      Traversal(currentNode.rightChild); 
     } 
    } 

    public static void main(String[] args){ 

     Tree binaryTree = new Tree(); 
     readFile read = new readFile(); 

     read.openFile(); 
     read.readFile(); 

    } 
} 

class Node{ 
    int key; 
    String patientName; 
    String DocName; 
    String currentApp; 
    String nextApp; 

    Node leftChild; 
    Node rightChild; 

    Node(int key, String patientName, String DocName, String currentApp, String nextApp){ 

     this.key = key; 
     this.patientName = patientName; 
     this.DocName = DocName; 
     this.currentApp = currentApp; 
     this.nextApp = nextApp; 


    } 



} 

Bu benim sınıf (Dizi uygulaması tamamlanmadı)

import java.io.*; 
import java.util.*; 


public class readFile { 
private Scanner x; 


public void openFile(){ 
    try{ 
     x = new Scanner(new File("patients.txt")); 
    } 
    catch (Exception e){ 
     System.out.println("Couldn't find file!"); 
    } 

} 

public void readFile(){ 

ArrayList<String> data = new ArrayList<String>(); 
    while(x.hasNext()){ 
     String PatientName = x.next(); 
     String DoctorName = x.next(); 
     String currentApp = x.next(); 
     String NextApp = x.next(); 


    } 
} 
public void closeFile(){ 
    x.close(); 
} 

} 

... benim metin dosyasında okuma için Ve burada

Baker, William,  Chavez,  04/01/05, 04/10/06 
Sanchez, Jose,  Chavez,  06/15/05, 
Anderson, Robert, Wong,  04/02/05, 03/30/06 
Watson, David,  Chavez,  05/03/05, 04/28/06 
Chung, Yu,  Gilbert, 07/10/05, 
Griffin, Sandy,  Gilbert, 06/20/05, 06/20/06 
Marcus, Wendy,  Wong,  08/02/05, 08/03/06 
Williams, Rebbeca, Chavez,  08/10/05, 08/11/06 
Kennedy, Fred,  Wong,  07/16/05, 07/15/06 
Henderson, Paul, Wong,  02/15/05,   
Tucker, Matthew, Wong,  04/10/05, 04/11/06 
Coombs, Jean,  Gilbert, 05/01/05, 04/10/06  
Earl, Gary,  Gilbert, 06/03/05, 05/10/06 
Atkins, Anthony, Chavez,  09/10/05, 09/11/06 
Garcia, Jesus,  Chavez,  10/10/05, 
David, James,  Wong,  02/02/05, 02/03/06 
Young, Ed,  Gilbert, 07/09/05, 07/10/06 
Jones, Richard,  Gilbert, 08/01/05, 08/10/06 
Peterson, Jerry, Wong,  06/02/05, 06/03/06 
Arnold, Belinda, Chavez,  01/10/05, 01/11/06 
Franklin, Jason, Wong,  09/12/05, 09/13/06 
Trent, Joseph,  Gilbert, 03/12/05, 
Valdez, Tomas,  Gilbert, 10/15/05, 10/10/06 
Gent, Charles,  Wong,  10/22/05, 10/11/06 
Roper, Joan,  Chavez,  03/10/05, 03/21/06 
Lopez, Ricky,  Wong,  03/24/05, 03/25/06 
Henry, Sarah,  Gilbert, 04/18/05, 04/17/06 
Nathan, James,  Chavez,  06/10/05, 08/11/06 
Ulvan, Rachel,  Chavez,  09/10/05, 
Mears, Sally,  Wong,  05/05/05, 
Edwards, Sam,  Gilbert, 05/21/05, 05/22/06 
Rubino, Ian,  Gilbert, 07/24/05, 07/21/06 
Osborn, Janet,  Chavez,  07/10/05, 07/11/06 
Barton, Michael, Chavez,  10/10/05, 10/16/06 
Quinn, Pat,  Gilbert, 08/27/05, 08/29/06 
Inglis, Peggy,  Wong,  08/30/05, 08/29/06 
+1

ihtiyacınız olan veriler. Ya da sadece ihtiyaç duyduğunuz argümanları ilettiğiniz farklı hasta 'Node' kurucularına sahip olabilirsiniz. – Ceelos

+0

@ceelos Önerileriniz için teşekkürler, Efendim! –

cevap

1

Metin dosyası Appointment adlı bir sınıf oluşturur. Düğümünüzde ve ArrayList'da saklayın.

class Appointment { 
    String patientName; 
    String DocName; 
    String currentApp; 
    String nextApp; 

    public Appointment (/*Get parameters*/) { 
     /*Set parameters to members*/ 
    } 
} 

Yani bu senin yeni Node

class Node{ 
    int key; 
    Appointment app; 

    Node leftChild; 
    Node rightChild; 

    Node(int key, Appointment app){ 
     this.key = key; 
     this.app = app; 
    } 

} 

Ve böyle bir ArrayList tanımlayabilirsiniz: ArrayList<Appointment> appointments = new ArrayList<>(); Hastayı `Node` oluşturmak ve ayarlamak için ayarlayıcıları ve alıcılar kullanmak ve almak

+0

Ahhhhh, diziyi başka bir şeye saklamayı hiç düşünmemiştim! müthiş –