2014-01-20 29 views
-1

我無法理解如何在鄰接表中掃描圖表。我理解相鄰表是如何工作的,以及它們之間的映射關係,但我不明白的是存儲它們的數據類型是什麼類型。我的任務是獲取一個輸入文件,它告訴頂點的數量G =(V,E )並給出圖中其他數字的邊緣。Java鄰接表

因此,例如:

3 
010 
101 
110 

這樣:

0 maps to 1 
1 maps to 0 
2 maps to 0 
2 maps to 1 

從那裏我必須實現呼吸搜索和他們的深度搜索。哈希表是我最好的選擇嗎?

回答

1

使用BFS和DFS的區別在於您存儲數據的數據結構,一個是「隊列」,另一個是「堆棧」(您的答案)。如果你使用java列表,你可以從頭開始或結束,但你也可以使用「真正的」堆棧和隊列。

所以在你的情況下,創建一個列表,並在其中存儲搜索的起源。

經過一段時間循環後,雖然列表中的元素保持不變。

所以從名單(第一個或最後一個)挑選你的元素和評估,如果它是你的目標,如果它不是,它存儲在列表中的所有鄰國和保持下去。

你可以添加兩個停止添加相同的元素兩次,你應該有一個訪問節點的列表。

但是,我懷疑你是否想知道在哪裏存儲鄰接表。一系列的列表會做。每個頂點,頂點[i]都有一個包含所有連接頂點的List。

+0

謝謝你!我現在以不同的方式去做。我只是要像你說的那樣使用堆棧和隊列。非常感謝! – user1819190