2017-06-01 101 views
-2

我試圖返回由Djikstra的算法使用數組跟蹤的整個路徑,但不知何故它只返回結束節點,但是當我用相同的方法打印值,它打印正確的值。數組只返回結束值在c#

public int[] PrintPath(int[] path, int j, int src) 
     { 
      int[] trace = new int[14]; 
      int i = 0; 

      if (path[j] == -1) 
       return path; 


      PrintPath(path, path[j], src); 
      Console.Write("{0}", j + 1); 
      trace[i] = j + 1; 
      i++; 
      return trace; 
     }//PrintPath 

源節點:1,目的地節點:10

預期輸出:1 13 7 9 10
實際陣列輸出:0 10 10 10 10 10 10 10 10 10 10 10 10 10

+0

能否請您詳細解釋問題 –

+1

爲什麼不調試你的方法並檢查是什麼導致你的問題? – Badiparmagi

+0

我已經使用了djikstra的算法,並且在上面貼出的方法中打印了到達目的地所用的最短路徑。我試圖將所有這些節點存儲在一個數組中並將其傳遞給另一個函數。但是,只有最終節點/頂點才被存儲在整個數組中。 –

回答

0

你的問題絕對不清楚。 如果您只是想打印路徑,爲什麼不使用String.Join(" ", path)

int[] path = new int[] {1, 13, 7, 9, 10 };  
Console.WriteLine(String.Join(" ", path)); 

或者請解釋清楚什麼是你的目標。