2011-10-06 23 views
1

我創建了一個基本節點鏈接列表,顯示列表的大小(即:0 - 9) 現在我試圖改變我必須顯示的名單。我對我需要改變的東西感到困惑,並且會有什麼不同。名稱將以字符串格式顯示。最終,我將讀取txt文件中的名稱列表。目前我只使用3個名稱和測試數據。如何使用節點顯示鏈接列表中的字符串

 import java.util.*; 

    public class Node { 
public int dataitems; 
public Node next; 
Node front; 

public void initList(){ 
    front = null; 
} 

public Node makeNode(int number){ 
    Node newNode; 
    newNode = new Node(); 
    newNode.dataitems = number; 
    newNode.next = null; 
    return newNode; 
} 

public boolean isListEmpty(Node front){ 
    boolean balance; 
    if (front == null){ 
     balance = true; 
    } 
    else { 
     balance = false; 
    } 
    return balance; 

} 

public Node findTail(Node front) { 
    Node current; 
    current = front; 
    while(current.next != null){ 
     //System.out.print(current.dataitems); 
     current = current.next; 

    } //System.out.println(current.dataitems); 
    return current; 
} 

public void addNode(Node front ,int number){ 
    Node tail; 
    if(isListEmpty(front)){ 
     this.front = makeNode(number); 
    } 
    else { 
     tail = findTail(front); 
     tail.next = makeNode(number); 
    } 
} 

public void printNodes(int len){ 

    int j; 
    for (j = 0; j < len; j++){ 
     addNode(front, j); 
    } showList(front); 
} 

public void showList(Node front){ 
    Node current; 
    current = front; 
    while (current.next != null){ 
     System.out.print(current.dataitems + " "); 
     current = current.next; 
    } 
    System.out.println(current.dataitems); 
} 


public static void main(String[] args) { 
    String[] names = {"Billy Joe", "Sally Hill", "Mike Tolly"}; // Trying to print theses names..Possibly in alphabetical order 

    Node x = new Node(); 
    Scanner in = new Scanner(System.in); 
     System.out.println("What size list? Enter Number: "); 
    int number = in.nextInt(); 
    x.printNodes(number); 
    } 

}

回答

1

幾件事情必須在我看來

public void printNodes(String[] nameList){ 

    int j; 
    for (j = 0; j < nameList.length; j++){ 
     addNode(front, nameList[j]); 
    } showList(front); 
} 

改變你必須通過包含名稱

x.printNodes(names); 

數組也改變:

public void addNode(Node front ,String name){ 
    Node tail; 
    if(isListEmpty(front)){ 
     this.front = makeNode(name); 
    } 
    else { 
     tail = findTail(front); 
     tail.next = makeNode(name); 
    } 
} 

和:

public Node makeNode(String name){ 
    Node newNode; 
    newNode = new Node(); 
    newNode.dataitems = name; 
    newNode.next = null; 
    return newNode; 
} 

,不要忘記改變dateitem類型爲字符串:

 import java.util.*; 

    public class Node { 
public String dataitems; 
+1

推倒這worked..Thanks的幫助。我做了這個確切的事情,但我改變了所有的字符串[],只有printnodes需要string []。謝謝 – TMan

+0

我非常歡迎 – Genjuro