2011-03-31 85 views
0

我有一個問題,我需要指導。我有一個有關不同節點之間邊緣信息的數組。所以,查找從A點到B點的路徑(n個循環)

a[1][39] = 'p' - >以過渡「P」,而在節點1到節點39.完全圖是這樣的:

i[1][51] = 'p' 
i[1][39] = 't' 
i[39][40] = 'd' 
i[40][66] = 'p' 
i[66][51] = 'd' 
i[40][41] = 'm' 
i[41][64] = 'd' 
i[64][40] = 'd' 

正如你可以看到,這是一個直接,循環圖。 我需要做的事是從點X到Y的所有路徑。所以,給定X = 1和Y = 51。我需要這樣的輸出:

o[0][0] = 'p' 

o[1][0] = 't' 
o[1][1] = 'd' 
o[1][2] = 'p' 
o[1][3] = 'd' 

o[2][0] = 't' 
o[2][1] = 'd' 
o[2][2] = 'm' 
o[2][3] = 'd' 
o[2][4] = 'd' 
o[2][5] = 'p' 
o[2][6] = 'd' 

第一個索引顯示路徑號。所以,我在這裏有三條路。第二個索引顯示了該步驟。所以,第一條路是一步,第二條是四步。

我在PHP中這樣做,但即使是僞代碼也可以。另外,如果這可能有幫助,我也可以將輸入數組反轉爲i[1]['p'] = 51等。

謝謝。

+0

不用說,這是實際的,更大的,圖的一個子集。此外,我現在可以使用循環,但必須將循環限制到一個特定的數字 - 例如,如果它訪問一個節點兩次以上,則丟棄一條路徑。 – recluze 2011-03-31 11:15:23

回答

1
+0

這應該如何幫助? – rabbitisle 2011-03-31 11:23:48

+0

@rabbitisle你問過僞代碼。 – eisberg 2011-03-31 11:28:44

+0

@eisberg我沒有問這個問題。如何返回單一(最佳)路徑的啓發式算法將有助於返回所有可能的路徑?我們在這裏需要的不是一個最好的答案,而是一個路徑的列舉。 – rabbitisle 2011-03-31 11:31:52

相關問題