2012-05-16 17 views
0

截至目前,這是我爲我的隊列的方法,你能幫我創建一個方法,它將返回一個完整的鏈表和隊列數組;

public String rQueue() 
{ 
    for(int i = 0; i < queueName.length; i++) 
    return queueName[i]; 
return 

" "; 
} 

這裏的問題是,i++永遠達不到,因爲返回​​,當我用這個方法,只返回第一個,我可以明白爲什麼。我怎樣才能修復它,以便我可以返回隊列的全部內容。我有一個鏈接列表Object()。我只想爲每個鏈接的每個實例返回Object.getMethod();。所以這就是我所擁有的。我能想到的唯一方法就是用另一個循環來觀察每個點,但我不知道如何返回這樣的東西。

public String displayLink() 
{ 
     Link current = first; 
     while(current != null) 
     { 
      current.displayMethod(); 
      current = current.next; 
     } 
} 

我真的更加停留在鏈接列表上,隊列只是某種技術問題。

+0

只需返回隊列? 'public queue * rQueue();' ?抱歉!錯誤的語言.. –

+0

我也有同樣的問題,因此我指的是這個鏈接 - Click Here 我認爲這對你很有用... – Neel

回答

0

如果你想返回串聯,你可以這樣做:

public String rQueue() { 
    String r = ""; 
    for(int i = 0; i < queueName.length; i++) { 
    if (i != 0) { 
     r += ", "; 
    } 
    r += queueName[i]; 
    } 
    return r; 
} 

對於鏈表可以返回一個集合。如果displayMethod返回,你可以這樣做:

public Collection<String> displayLink() { 
     Collection<String> result = new List<String>(); 
     Link current = first; 
     while(current != null) { 
      result.add(current.displayMethod()); 
      current = current.next; 
     } 
     return result; 
} 
0

第一部分,

public String[] qQueue { return queueName; } // or defensively copy, if you prefer 

然後你有數組作爲隊列的內容,如果這是它如何融入其他的代碼。

第二部分看起來對我來說很好。

0

你對鏈表執行的操作實際上是遍歷它的唯一方式(假設它是一個鏈接從一個節點到下一個節點的簡單鏈表)。這也是爲什麼從鏈表中檢索元素是O(n)操作的原因,因爲您必須遍歷列表才能找到要查找的對象。
現在就返回值而言,您可以將它們追加到一個字符串並最終返回此字符串。像這樣的東西會工作:

public String rQueue() { 
    StringBuffer sb = new StringBuffer(); 
    for(int i = 0; i < queueName.length; i++) 
     sb = sb.append(queueName[i]); 
    return sb.toString(); 
} 

注意,我在上面的代碼中使用一個StringBuffer,因爲它是不是連接到一個字符串的結束,特別是對於大量級聯的效率更高。

相關問題