2012-12-02 45 views
0

我正在編寫一個程序,該程序使用節點數據結構接受來自用戶的名稱(字符串),顯示名稱,然後有選擇地刪除名稱。 (我想輸入是在一個數組中)。當使用for循環輸入名稱並顯示時,程序將詢問我要刪除的內容或要從陣列中刪除的名稱。如何使用數組在字符串中輸入字符串,然後刪除它們?

這是我的課:

public class Node 
{ 
    Node next; 
    String data; 

    public Node (String data) 
    { 
     this.data = data; 
    } 
} 

程序應該做什麼:

可以說,我在進入5名for循環。

Alex, George, Fryon, Storm, Hilbert. 

然後當我進入它,它會顯示:

Alex. 
George 
Fryon 
Storm 
Hilbert 

然後,它會問我應該刪除什麼名字?

(Alex) 
George 
Fryon 
Storm 
Hilbert 

但我甚至不能輸入它們。

String[] contestant = new String [MAX]; 
head = null; 

for (int i = 0; i <= 5; i++) 
{ 
System.out.println ("Enter a name:"); 
name [0] = stdin.readLine(); 

node = new Node (name [i]); 
node.next = head; 
head = node; 
} 

如果節點或鏈表與數組相關,我會感到困惑。我希望將它存儲爲「節點數組」,使用for循環將其顯示爲「像數組」一樣,然後「使用數組排序來刪除它」。但它真的很難。

+1

你可以使用標準容器'LinkedList'還是必須自己寫? – bellum

回答

0

編寫如下:

String name; 
Node current = null; 

while(true) 
{ 
System.out.println ("Enter a name:"); 
name = stdin.readLine(); 

if(name.equals("exit")) break; 

if(current == null) { 
    current = new Node(name); 
} 
else { 
    current.next = new Node(name); 
    current = current.next; 
} 

} 
+1

由於您現在沒有提及頭部,您如何進行迭代? – Esailija

+0

你如何命名一個數組? –

0

哇。我驚訝於自己。

數組是一個不同的數據結構,然後是一個鏈表。我已經用數組編程了很長時間,所以我沒有意識到像循環鏈表這樣更有效。

相關問題