2015-06-05 83 views
-1

我想用dijkstra的算法打印出從一個頂點到另一個頂點的路徑。當我發送code2作爲參數到列表路徑= ...我得到一個錯誤getShortestPathTo說:「Digraph類型的方法getShortestPathTo(Digraph.Vertex)不適用於參數(字符串)。我該如何施展它?它將接受一個String鑄造成一個字符串

System.out.print("City Code: "); 
    String code = kb.next(); 
    String code2 = kb.next(); 
    Digraph.computePaths(Digraph.getCode(source,code)); 
    List<Digraph.Vertex> path = (Digraph.getShortestPathTo(code2)); 

這是我getShortestPathTo方法:

public static List<Vertex> getShortestPathTo(Vertex target) { 
     List<Vertex> path = new ArrayList<Vertex>(); 
     for (Vertex vertex = target; vertex != null; vertex = vertex.previous) { 
      path.add(vertex); 
     } 
     Collections.reverse(path); 
     return path; 
    } 
+0

請發佈頂點代碼 –

+0

什麼是變量kb? – HyperNeutrino

+0

@ freakshow1217我剛發佈了它。 – Kay

回答

0

使用Integer.toString( 「字符串這裏」);

+0

我在哪裏使用它? – Kay

0

的方法getShortestPathTo(Vertex vertex)需要一個參數,它是Vertex。A String不是Vertex。您需要將Vertex傳遞給方法。你需要用某種算法(我不知道你的格式爲Vertex)將代碼2轉換成Vertex,或者考慮重寫kb.next()返回一個頂點。

+0

有沒有什麼方法可以將字符串轉換爲頂點? – Kay

+0

@Kay號碼Definetly不。 「頂點」不是「字符串」的超類,也不是「子類」。創建一個方法將'String'轉換爲'Vertex'。 – HyperNeutrino

+0

@你可以自己解決這個問題。 StackOverflow不提供代碼寫入服務.. – Gosu